erw*_*sad 1 javascript asynchronous settimeout node.js
如果有更改,我的应用程序需要每 2 秒轮询一次。现在我使用setInterval,但有时myFunction执行时间会超过2秒,并且mysql数据库中的记录将被插入两次。我在 myFunction 中使用异步库..
所以我需要这个...
当 myFunction 完成时
method.myFunction() =>
它需要再次运行(但仅当它完成时)。setIntervalx 秒不是一个选项。这是因为如果脚本花费的时间超过 x 秒,它们可以同时运行。
我怎样才能myFunction在 x 秒后再次运行,但只有在myFunction处理完成时才能运行所以在伪代码中它会是这样
if method.myFunction == finished
wait 2 seconds
run method.myFunction again
因此,使用下面的代码,当函数执行结束时,您的方法将每秒调用一次。
function godMethod(){
/* do what ever you want but call executor once you are done with everything */
someCallbackForInsertion(data, function(){
executor()
})
}
function executor(){
setInterval(function(){
godMethod()
}, 2000);
}
executor();
Run Code Online (Sandbox Code Playgroud)
因此,在这里您在服务器启动时调用执行器,然后 2 秒后它调用 godMethod,然后执行插入/其他操作。插入成功后再次调用执行器。
| 归档时间: |
|
| 查看次数: |
2858 次 |
| 最近记录: |