簡體   English   中英

如何在Node.js中創建帶有延遲的While循環

[英]How to create a while loop with delay in nodejs

假設我有這個偽代碼:

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

此代碼的目標是繼續調用api來檢查某物的狀態,該api返回IN_PROGRESS或SUCCEEDED。 因此,我希望while循環繼續調用getStatus()以獲取STATUS的值,並在成功時中斷循環。 我還想在每次迭代之間設置一個延遲。

使用Nodejs很難做到這一點。 所以請幫幫我。

您甚至不需要while循環,只需使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM