Node JS,完成后运行相同的功能

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

Pra*_*aya 6

因此,使用下面的代码,当函数执行结束时,您的方法将每秒调用一次。

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,然后执行插入/其他操作。插入成功后再次调用执行器。