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