如果有更改,我的应用程序需要每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,然后执行插入操作。成功插入后,再次调用执行程序。

10-05 20:41
查看更多