Articles of settimeout

在Node.js中调节请求

我有一个数组。 我可以使用foreach方法遍历它。 data.forEach(function (result, i) { url = data[i].url; request(url); }); 请求函数正在对给定的url进行http请求。 但同时提出这些要求会带来种种问题。 所以我认为我应该通过引入某种计时器来减慢速度。 但我不知道如何能够结合使用setTimeOut / setInterval的循环 请注意在服务器(nodejs)而不是浏览器上执行此操作。 感谢您的帮助。

获取Node.js事件循环中(活动)定时器的数量

有没有办法在Node.js中调用来确定事件循环队列中的定时器的数量? 我有一个有很多超时的图书馆,而不是使用某种内部簿记系统来跟踪他们,如果我可以问V8或Libuv或其他什么,有多less个定时器,那将是很好的。 这可能吗?

Javascript中组合延迟函数调用

我不太确定这是什么技术术语。 我有一个交互式graphics界面。 在用户与GUI交互之后,我需要执行一些CPU密集型操作。 但是,用户input非常频繁,所以我只想在没有用户input的1000ms之后调用这个函数。 在我使用的模式下面: scheduler = (function(){ var timer; function exec(call, delay){ clearTimeout(timer); timer = setTimeout(call, delay); }; return exec; })() 也就是说,如果3个scheduler调用是一个接一个完成的,那么只有最后一个调用scheduler会被执行: scheduler(function(){alert('foo')}, 1000); scheduler(function(){alert('bar')}, 1000); scheduler(function(){alert('zoo')}, 1000); 它似乎工作,但感觉有点哈克我有点担心Javascript setTimeout任何警告,特别是范围的问题。 这看起来像是我可以在更大规模上使用的可靠模式吗? 我调用scheduler的内联函数是否可以像往常一样在其词法范围内查找所有对象,何时由settimeout调用? 如果我有几个这样的调度器实例呢? 他们能互相干扰吗? 有没有其他办法来完成这个?

如何在node.js中清理

嗨我们正在开发node.js,socket.io和redis的应用程序。 我们有这个程序: exports.processRequest = function (request,result) { var self = this; var timerknock; switch(request._command) { case 'some command': // user login with username // some statement timerknock=setTimeout(function() { //some statemetn },20*1000); case 'other command ': // some statement clearTimeout(timerknock); } }; 但是当取消定时器时,其他命令执行时不会取消,我该怎么做取消定时器?

Node.JS:setTimeout不保持进程运行

我想给这个过程增加一个小时的超时时间,以防止在stream死锁的情况下永远停留。 唯一的问题是如果我说setTimeout,这个过程没有机会提前结束。 有一种方法可以在大约一个小时后强制退出超时,而不会使进程继续运行? 或者我坚持使用process.exit和做没有这个超时?

如果延迟超过2147483648毫秒,setTimeout立即触发

问题 如果delay超过2147483648毫秒(24.8551天),该function将立即触发。 例 setTimeout(function(){ console.log('hey') }, 2147483648) // this fires early setTimeout(function(){ console.log('hey') }, 2147483647) // this works properly 我在Chrome v26和Node.js v8.21下试过了

什么决定使用promises或setTimeout延迟函数的调用顺序?

推迟函数的执行,例如在自定义事件处理中,是JavaScript中的一种常见模式(参见这里的例子)。 它曾经是使用setTimeout(myFunc,0)是唯一的方法来做到这一点,但承诺现在有一个替代: Promise.resolve().then(myFunc) 。 我以为这些东西几乎可以做同样的事情,但在一个包含自定义事件的库上工作时,我想我会发现是否有差异,所以我把下面的块放到节点中: var logfn=function(v){return function(){console.log(v)}}; setTimeout(logfn(1),0); Promise.resolve().then(logfn(2)); logfn(3)(); 我期待在控制台3,1,2上看到,但是我看到了3,2,1。所以换句话说,Promise不等同于使用setTimeout,并且先出来块。 至less在Node中。 我在Chrome和Firefox中重复了testing,结果相同,但是在Edge中出现了3,1,2。我也希望非本地的promise库能够在后台使用setTimeout,所以会和Edge一样。 什么决定了这些呼叫的顺序被解决? 这些不同的环境使用什么模型来确定执行顺序? 以上任何一种情况是否代表标准或非标准行为? 附言我没有build议依靠任何这种保持一致,我只是好奇。 在下面给出的答案指出我正确的方向,正如在下面的评论中简要提到的,我在杰克·阿奇博尔德杰克·阿奇博尔德 ( 杰克·阿奇博尔德的一篇杰出的文章中find了完整的答案(与上面的代码几乎相同),我虽然我加在这里,而不是把它埋在评论里。

在Node.js循环中设置setTimeout

对于setTimeout是如何工作的,我有点困惑。 我试图在一个循环中有一个setTimeout ,以便循环迭代相隔1秒。 每个循环迭代都会产生一个HTTP请求,而另一端的服务器似乎不能在如此短的时间内处理这么多的请求。 for (var i = 1; i<=2000 && ok; i++) { var options = { host:'www.host.com', path:'/path/'+i }; setTimeout(makeRequest(options, i), 1000); }; 为什么这不起作用,我怎么能做到这一点? 谢谢

在Node.js中保持setTimeout和setInterval重新启动

我设置了相当多的服务器端超时setTimeout和setInterval每个连接的用户可以持续10-30秒。 如果Node.js实例在其中一个超时期间重新启动,显然它们在重新启动时会被清除,这可能会给这些用户带来一些问题。 我将如何去坚持这些超时,还是有任何模块已经帮助了这个?

在节点js中设置超时的麻烦

我有一个域exception处理程序(夜间testing包装)。 我的exception处理程序包装 var domainError = function(func) { return function() { var d = domain.create().on('error', function(err) { console.error(err.stack); }); d.enter(); try { return func.apply(this, arguments); } catch (err) { //do something with the err } d.exit(); } }; 我想设置超时,以便return func.apply(this, arguments); 并不是永远。 任何人都可以build议如何添加超时,并使域结束function,并退出,如果超过超时?