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());
})();