如何在nodejs中使用延迟创建一个way循环



假设我有此伪代码:

var STATUS = '';
while (STATUS !== "SUCCEEDED") {
    STATUS = getStatus();
    anotherFunc();
    delay(3s);
}

此代码的目标是继续调用API检查某物的状态,API返回IN_Progress或成功。因此,我希望WARY循环继续调用getStatus()获得状态的值并在成功时打破循环。我也想在每次迭代之间延迟。

Nodejs不能轻易完成。所以请帮助我。

您甚至不需要一个时循环,只需使用setInterval(),然后在回调中检查是否满足您的条件以清除创建的间隔。

var STATUS = '',
    idx = setInterval(function() {
        STATUS = getStatus();
        if (STATUS === "SUCCEEDED") { // I guess you wanted a check for STATUS instead of VAR
            return clearInterval(idx);
        }
        anotherFunc();
    }, 3000); // the interval when to call the function again 3000ms = 3sek

您可以使用setInterval在延迟上不断做某事。它接受您可以使用API调用的函数,但是在您进行呼叫之前,您应该检查最后一个电话是否成功。

呼叫成功后,您可以清除间隔。

https://nodejs.org/api/timers.html#timers_setinterval_callback_delay_args

相关内容

最新更新