gpt4 book ai didi

javascript - setTimeout 不适用于 Node.js 中的 Monq

转载 作者:行者123 更新时间:2023-11-30 12:09:19 26 4
gpt4 key购买 nike

尝试使用 setTimeoutmonq 执行速率限制时 worker ,为什么 worker 没有被节流?

worker 在执行 setTimeout() 之前不会等待 10 秒。为什么会这样,我们怎样才能让它延迟对 foo() 的调用?

var monq = require('monq')
var client = monq('localhost/mydb')
var worker = client.worker(['general'])
worker.register({
test: function(params, callback) {
try {
setTimeout(foo(params, callback), 10000)
} catch(err) {
callback(err)
}
}
})

foo = function(params, callback) {
console.log('Hello world')
callback()
}

最佳答案

因为 setTimeout 需要一个函数引用。相反,您正在执行函数并将结果传递给 setTimeout

使用:

setTimeout(function() {
foo(params, callback);
}, 10000);

此外,try/catch block 在那里有些多余,因为调用 setTimeout 不会抛出异常。相反,您需要在 foo 中处理它。

关于javascript - setTimeout 不适用于 Node.js 中的 Monq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34236632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com