首页 > 代码库 > Node.js API —— Timers(定时器)
Node.js API —— Timers(定时器)
// 说明
Node API 版本为 v0.10.31。
中文参考:http://nodeapi.ucdok.com/#/api/
中文参考:http://nodeapi.ucdok.com/#/api/
本段为博主注解。
○ setTimeout(callback, delay, [arg], [...])
○ clearTimeout(timeoutObject)
○ setInterval(callback, delay, [arg], [...])
○ clearInterval(intervalObject)
○ unref()
○ ref()
○ setImmediate(callback, [arg], [...])
○ clearImmediate(immediateObject)
目录
● 定时器○ setTimeout(callback, delay, [arg], [...])
○ clearTimeout(timeoutObject)
○ setInterval(callback, delay, [arg], [...])
○ clearInterval(intervalObject)
○ unref()
○ ref()
○ setImmediate(callback, [arg], [...])
○ clearImmediate(immediateObject)
稳定性:5 - 锁定
所有的定时器函数都是全局的。你不需要为了使用它们而 require() 这个模块。
setTimeout(callback, delay, [arg], [...])
计划在 delay 毫秒之后执行一个一次的 callback。返回一个 timeoutObject 以供 clearTimeout() 在有需要的时候使用。可选地,你也可以传递参数给回调函数。
重要值得注意的是,你的回调函数很可能不是在准确的 delay 毫秒之后被调用—— Node.js 不保证回调函数执行的准确时间和执行的顺序。回调函数只是尽可能地靠近指定的时间去执行。
clearTimeout(timeoutObject)
阻止一个 timeout 定时器触发。
setInterval(callback, delay, [arg], [...])
计划每隔 delay 毫秒之后重复执行 callback。返回一个 intervalObject 以供 clearInterval() 在有需要的时候使用。可选地,你也可以传递参数给回调函数。
clearInterval(intervalObject)
停止一个 interval 定时器的触发。
unref()
setTimeout 和 setInterval 返回的不透明的值也有 timer.unref() 方法,能让你创建一个活动的定时器,但如果它是事件循环中仅剩的项目时不会保持程序运行。如果定时器已经被 unref,再次调用 unref 不会有任何影响。
在 setTimeout 的情况下当你 unref 会创建另一个会唤醒事件循环的定时器。创建太多这些定时器可能对事件循环的性能造成不利的影响——慎用。
ref()
如果你之前已经 unref() 一个定时器,你可以调用 ref() 明确地要求定时器保持程序运行。如果定时器已经被 ref,再次调用 ref 不会有任何影响。
setImmediate(callback, [arg], [...])
计划在 I/O 事件回调之后,setTimeout 和 setInterval 之前”马上“执行 callback。返回一个 immediateObject 以供 clearImmediate() 在有需要的时候使用。可选地,你要可以传递参数给回调函数。
immediate 事件都以创建的顺序被放入队列中,并且在每次事件循环迭代中从队列头弹出一个。这与 process.nextTick 不同,后者会在每次迭代中执行 process.maxTickDepth 个队列中的回调函数。setImmediate 执行一个队列中的回调函数后会放弃(对CPU的占用)回到事件循环以保证 I/O 不至于无法发起。当执行的顺序被保存之后,其他 I/O 事件可能会在任何两个计划的 immediate 回调函数之间执行。
clearImmediate(immediateObject)
停止一个 immediate 定时器触发。
Node.js API —— Timers(定时器)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。