Node.js 您可以设置多少设置超时?

Node.js 您可以设置多少设置超时?,node.js,settimeout,upperbound,Node.js,Settimeout,Upperbound,我正在编写一个服务器端作业,该作业试图通过执行以下操作来限制操作: var throttle = 1000 / 20; for (var i = 0; i < 80000; i++) { setTimeout(operation, Math.floor(throttle * i)); } var节流阀=1000/20; 对于(变量i=0;i

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

var throttle = 1000 / 20;
for (var i = 0; i < 80000; i++) {
    setTimeout(operation, Math.floor(throttle * i));
}
var节流阀=1000/20;
对于(变量i=0;i<80000;i++){
设置超时(操作、数学下限(油门*i));
}
我知道sleep在这里工作得更好,但是node.js需要一个库,所以我试着解决这个问题。然而,这个程序将适用于一千多个这样的东西,然后。。。没有什么。没有错误消息,只是什么也没有发生。我怀疑JS的超时槽用完了

我已经迁移到睡眠状态,这看起来很有效,但我非常好奇JS是如何处理超时的。有人有其他的见解吗

谢谢


无论如何,我假设答案在这个文件中,假设它不在V8本身中。

为什么不使用
setInterval(函数,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));

(当然,对于我介绍的任何off,请更正)

为什么不改用
setInterval(函数,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));

(当然,纠正了我介绍的任何错误)

它肯定不是V8,因为
setTimeout
不是JavaScript语言的特性。我不知道为什么您的测试挂起了。。。它还在滴答作响:)在我的机器上。我猜这取决于操作系统。这是我对您的代码所做的微小更改,因此它明显地做了一些事情:
var throttle=1000/20;对于(VARI=0;i<80000;i++){(函数(i){setTimeout((函数(){console.log(i+“ticked!”+新日期().toLocaleTimeString();}),Math.floor(throttle*i));})(i);}
什么是
操作
?你的代码对我来说很好。操作只是为我打印console.log。它肯定不是V8,因为
setTimeout
不是JavaScript语言功能。我不确定你的测试为什么挂起。。。它还在滴答作响:)在我的机器上。我猜这取决于操作系统。这是我对您的代码所做的微小更改,因此它明显地做了一些事情:
var throttle=1000/20;对于(VARI=0;i<80000;i++){(函数(i){setTimeout((函数(){console.log(i+“ticked!”+新日期().toLocaleTimeString();}),Math.floor(throttle*i));})(i);}
什么是
操作
?你的代码对我来说很好。操作只是为我打印console.log。