如果有更改,我的应用程序需要每2秒轮询一次。现在我使用setInterval,但是有时myFunction
花费的时间超过2秒,并且mysql数据库中的记录将被插入两次。我在myFunction中使用了异步库。
所以我需要这个...
当myFunction完成时method.myFunction() =>
它需要再次运行(但仅在完成时才运行)。 x秒的setInterval
是不可选项。这是因为如果脚本花费的时间超过x秒,则它们可以同时运行。
我如何在x秒后再次运行myFunction
,但仅当myFunction
完成处理后
所以在伪代码中就是这样if method.myFunction == finishedwait 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();
因此,这里您在服务器启动时调用执行程序,然后在2秒钟后调用godMethod,然后执行插入操作。成功插入后,再次调用执行程序。