您可以设置多少设置超时



>我正在编写一个服务器端作业,该作业试图通过执行以下操作来限制操作:

var throttle = 1000 / 20;
for (var i = 0; i < 80000; i++) {
    setTimeout(operation, Math.floor(throttle * i));
}

我认识到睡眠在这里效果更好,但节点.js需要一个图书馆,所以我试图坚持下去。但是,该程序将适用于其中的一千多种事情,然后......无。没有错误消息,只是什么也没发生。我怀疑JS用完了超时槽。

此后我已迁移到睡眠状态,这似乎正在工作,但我很好奇 JS 如何处理超时。有人有任何额外的见解吗?

谢谢!

对于它的价值,我假设答案在这个文件中,https://github.com/joyent/node/blob/master/src/timer_wrap.cc 假设它不在 V8 本身中。

你为什么不使用setInterval(function, interval)呢?

var throttle = 1000 / 20;
var i = 0;
var interval = setInterval(function() { 
        operation();
        if(i++ == 80000) {
            // we're done
            clearInterval(interval); 
        }
    }, Math.floor(throttle * i));

(当然,纠正我介绍的任何不对劲)

相关内容

  • 没有找到相关文章

最新更新