从这个测试,它似乎并不认为它确实有一个最小延迟。
如果你这样做有一个10ms
持续时间长的返回值到控制台setTimeout()
,这是你会得到什么:
var timer = setTimeout(function(){ console.log(timer);}, 10);
{ _idleTimeout: 10,
_onTimeout: [Function],
_idlePrev: null,
_idleNext: null,
_idleStart: Sun, 28 Aug 2011 14:34:41 GMT }
同样,用1ms
时间,可以得到:
var timer = setTimeout(function(){ console.log(timer);}, 1);
{ _idleTimeout: 1,
_onTimeout: [Function],
_idlePrev: null,
_idleNext: null,
_idleStart: Sun, 28 Aug 2011 14:34:59 GMT }
但是,如果您执行0
持续时间,则根本没有得到_idleTimeout:
属性,这似乎表明该回调是立即调用的,尽管是异步调用的。
var timer = setTimeout(function(){ console.log(timer);}, 0);
{ repeat: 0, callback: [Function] }
而且,如果我做简单的开始/结束日期比较,我通常得到0
作为减去年底开始的结果。
var start = Date.now();
var timer = setTimeout(function(){ console.log(timer, Date.now() - start);}, 0);
{ repeat: 0, callback: [Function] } 0
这些测试使用Node.js 0.5.2
完成。