timersPromises.setInterval([delay[, value[, options]]])
返回一个异步迭代器,该迭代器以 delay 毫秒的间隔生成值。如果 ref 为 true,你需要显式或隐式地调用异步迭代器的 next() 来保持事件循环活跃。
【Returns an async iterator that generates values in an interval of delay ms.
If ref is true, you need to call next() of async iterator explicitly
or implicitly to keep the event loop alive.】
delay<number> 每次迭代之间等待的毫秒数。 默认值:1。value<any> 迭代器返回的一个值。options<Object>ref<boolean> 设置为false表示计划的迭代间Timeout不需要保持 Node.js 事件循环处于活动状态。 默认值:true。signal<AbortSignal> 可选的AbortSignal,可用于取消操作之间已安排的Timeout。
import {
setInterval,
} from 'node:timers/promises';
const interval = 100;
for await (const startTime of setInterval(interval, Date.now())) {
const now = Date.now();
console.log(now);
if ((now - startTime) > 1000)
break;
}
console.log(Date.now());const {
setInterval,
} = require('node:timers/promises');
const interval = 100;
(async function() {
for await (const startTime of setInterval(interval, Date.now())) {
const now = Date.now();
console.log(now);
if ((now - startTime) > 1000)
break;
}
console.log(Date.now());
})();