[英]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.