timers模块

timers模块

var timers = require('timers');

function  A() {
    //将A对象注册到定时器里
    timers.enroll(this, 3000);
    //进行激活,如果不激活,该对象的onTimeout方法不会被调用,每调用一次,将_idleTimeout的值重置
    timers._unrefActive(this);
}

A.prototype.foo = function () {
    //将_idleTimeout的值重置
    timers._unrefActive(this);
}

A.prototype.bar = function () {
    //取消注册
    timers.unenroll(this);
}


A.prototype._onTimeout = function () {
    console.log("connect timeout");

};

module.exports = exports = A;
var A = require('./abc.js');

var test = new A();


//定时器,每间隔一秒钟从1输出到10
(function () {
    var num = 0;
    var timer = setInterval(function () {
        num++;
        if(num == 2){
            //重置了_idleTimeout,所以是在5秒时触发
            test.foo();
        }
        console.log(num);
        if (num >= 10) {
            clearTimeout(timer);
            return;
        }
    }, 1000);
})();
原文地址:https://www.cnblogs.com/moris5013/p/10772548.html