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。