javascript - 如何在nodejs中创建一个有延迟的while循环

标签 javascript node.js

假设我有这个伪代码:

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

关于javascript - 如何在nodejs中创建一个有延迟的while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46375090/

相关文章:

javascript - 使用 autoGeneratedKeyType 标识的 Breeze-Sequelize

node.js - 跨多个核心/服务器扩展 Node.JS

node.js - NodeJS等待在子进程中不起作用

javascript - 在 Windows 8 计算机上安装 Cairo 和 Canvas

javascript - javascript前缀运算会产生这样的结果吗?

javascript - 如何将三种颜色逐一应用于一组div

javascript - 如何构建 JavaScript 项目?

javascript - jquery slider - 滑动功能在不应该的时候取消

node.js - Docker + WebGL + Headless Chrome 错误 : Passthrough is not supported, GL 被禁用

javascript - Javascript 无法识别 HTML 表单输入?