我正在编写一个服务器端作业,该作业试图通过执行以下操作来限制操作:
var throttle = 1000 / 20;
for (var i = 0; i < 80000; i++) {
setTimeout(operation, Math.floor(throttle * i));
}
我认识到 sleep 在这里效果更好,但是 node.js 需要一个库,所以我试图坚持下去。然而,这个程序可以处理一千多个这样的事情,然后......什么也没有。没有错误消息,只是没有发生任何事情。我怀疑 JS 用完了超时槽。
我已经迁移到睡眠状态,这似乎正在工作,但我对 JS 如何处理超时感到非常好奇。有没有人有任何额外的见解?
谢谢!
对于它的价值,我假设答案在这个文件中https://github.com/joyent/node/blob/master/src/timer_wrap.cc假设它不在 V8 本身中。