ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 定时器 ~~~ 稳定度: 5 - 已锁定 ~~~ 所有的定时器函数都是全局变量. 你使用这些函数时不需要 `require()`模块. ### setTimeout(callback, delay, [arg], [...]) 调度 `delay` 毫秒后的一次 `callback` 执行。返回一个可能被 `clearTimeout()` 用到的 `timeoutId`。可选地,您还能给回调传入参数。 请务必注意,您的回调有可能不会在准确的 `delay` 毫秒后被调用。Node.js 不保证回调被触发的精确时间和顺序。回调会在尽可能接近所指定时间上被调用。 ### clearTimeout(timeoutId) 阻止一个 timeout 被触发。 ### setInterval(callback, delay, [arg], [...]) 调度每隔 `delay` 毫秒执行一次的 `callback`。返回一个可能被 `clearInterval()` 用到的 `intervalId`。可选地,您还能给回调传入参数。 ### clearInterval(intervalId) 停止一个 interval 的触发。 ### unref() `setTimeout` 和 `setInterval` 所返回的值同时具有 `timer.unref()` 方法,允许您创建一个活动的、但当它是事件循环中仅剩的项目时不会保持程序运行的定时器。如果定时器已被 `unref`,再次调用 `unref` 不会产生其它影响。 在 `setTimeout` 的情景中当您 `unref` 您会创建另一个定时器,并唤醒事件循环。创建太多这种定时器可能会影响事件循环的性能,慎用。 ### ref() 如果您之前 `unref()` 了一个定时器,您可以调用 `ref()` 来明确要求定时器让程序保持运行。如果定时器已被 `ref` 那么再次调用 `ref` 不会产生其它影响。 ### setImmediate(callback, [arg], [...]) 调度在所有 I/O 事件回调之后、`setTimeout` 和 `setInterval` 之前“立即”执行 `callback`。返回一个可能被 `clearImmediate()` 用到的 `immediateId`。可选地,您还能给回调传入参数。 immediate 的回调以它们创建的顺序被加入队列。整个回调队列会在每个事件循环迭代中被处理。如果您在一个正被执行的回调中添加 immediate,那么这个 immediate 在下一个事件循环迭代之前都不会被触发。 ### clearImmediate(immediateId) 停止一个 immediate 的触发。