每天学习一点点,成功增加一大步

NodeJs笔记:setTimeout 或 setInterval 的间隔时间执行

NodsJS zhanghui 648℃

在 nodejs 中有时要遇到运行一个请求时不成功,希望能让它停顿一个再进行相同的操作。如果使用 setTimeout 和 setInterval 你观察其执行时会发现它并不会是我们想要的间隔时间性的执行,而是一路不停歇的往下跑,就在昨天也遇到这种问题。

其实这也是 nodejs 当中的一个隐藏坑,nodejs 本身就是异步处理的机制,所以你直接用 setTimeout 和 setInterval 其效果也如是。

那么如何来解决呢?还是之前所记录过的 Promise 。

例如 setTimeout 的实例

private async _sleep(time: number) {
 return new Promise(function (resolve, reject) {
 setTimeout(function () {
 resolve();
 }, time);
 });
}

那么如何调用它呢?不用再写了吧。那么 setInterval 呢?也和 setTimeout 一样的写法啊。只是说此时的 setTimeout 变成了 setInterval 而易啊

private async _sleep(time: number) {
 return new Promise(function (resolve, reject) {
 setInterval(function () {
 resolve();
 }, time);
 });
}

 

转载请注明:隨習筆記 » NodeJs笔记:setTimeout 或 setInterval 的间隔时间执行