Node.js 定时器
稳定性: 5 - 锁定
所有的定时器函数都是全局的。不需要通过 require()
就可以访问。
setTimeout(callback, delay[, arg][, ...])
delay
毫秒之后执行 callback
。返回 timeoutObject
对象,可能会用来 clearTimeout()
。你也可以给回调函数传参数。
需要注意,你的回调函数可能不会非常准确的在 delay
毫秒后执行,Node.js 不保证回调函数的精确时间和执行顺序。回调函数会尽量的靠近指定的时间。
clearTimeout(timeoutObject)
阻止一个 timeout 被触发。
setInterval(callback, delay[, arg][, ...])
每隔 delay
毫秒就重复执行 callback
。返回 timeoutObject
对象,可能会用来 clearTimeout()
。你也可以给回调函数传参数。
clearInterval(intervalObject)
阻止一个 interval 被触发。
unref()
setTimeout
和 setInterval
所返回的值,拥有 timer.unref()
方法,它能让你创建一个活动的定时器,但是它所在的事件循环中如果仅剩它一个计时器,将不会保持程序运行。如果计时器已经调用了 unref
,再次调用将无效。
在 setTimeout
场景中,当你使用 unref
并创建了一个独立定时器它将会唤醒事件循环。创建太多的这样的东西会影响事件循环性能,所以谨慎使用。
ref()
如果你之前已经使用 unref()
一个定时器,就可以使用 ref()
来明确的请求定时器保持程序打开状态。如果计时器已经调用了 ref()
,再次调用将无效。
setImmediate(callback[, arg][, ...])
在 setTimeout
和 setInterval
事件前,在输入/输出事件后,安排一个 callback
"immediate" 立即执行。
immediates 的回调以它们创建的顺序加入队列。整个回调队列会在事件循环迭代中执行。如果你将immediates 加入到一个正在执行回调中,那么将不会触发immediate,直到下次事件循环迭代。
clearImmediate(immediateObject)
停止一个 immediate 的触发。
Node.js 定时器的更多相关文章
- 定时器setTimeout()和Node.js的Event Loop
一.定时器 setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,也就是说,尽可能早得执行.它在"任务队列"的尾部添加一个事件,因此要等到同步任务和 ...
- The Node.js Event Loop, Timers, and process.nextTick() Node.js事件循环,定时器和process.nextTick()
个人翻译 原文:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ The Node.js Event Loop, Ti ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
[摘要] 官网博文翻译,nodejs中的定时器 示例代码托管在:http://www.github.com/dashnowords/blogs 原文地址:https://nodejs.org/en/d ...
- 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick
目录 Event Loop 是什么? Event Loop 基本解释 事件循环阶段概览 事件循环细节 timers pending callbacks poll阶段 check close callb ...
- 极简 Node.js 入门 - 2.4 定时器
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js API 初解读(一)
Node.JS API 初解读 Version: NodeJs v6.2.0 一. Assert 1.简介 Assert模块主要用于断言.如果表达式不符合预期,就抛出一个错误. 该模块用于编写程序的单 ...
- 了不起的Node.js读书笔记
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
- node.js第一次
随着时代的变迁,日月星辰轮回,不断的有新的事物被创造于世,作为在这个世界活着的前端工程崽的我,最近又接触了一门新手艺“node.js”.自从它2009年诞生至今,被很多前端推崇,我起步已经晚了,还好它 ...
随机推荐
- Help Jimmy ~poj-1661 基础DP
Help Jimmy" 是在下图所示的场景上完成的游戏. 场景中包括多个长度和高度各不相同的平台.地面是最低的平台,高度为零,长度无限. Jimmy老鼠在时刻0从高于所有平台的某处开始下落, ...
- 02、NetCore2.0优化之Nuget包
02.NetCore2.0优化之Nuget包 在NetCore2.0中的包是如何管理的?如何存储的?微软做了哪些优化工作? -------------------------------------- ...
- 如何从二维数组中的多个key中获取指定key的值?
精华 LOVEME96 2016-10-21 10:40:19 浏览(1512) 回答(3) 赞(0) 新手求教:二维数组中一般会有多个key,如果我们要获得指定key的值,应该怎么做? 问题标签: ...
- 开源协议瞎扯淡,什么是 MIT 协议?[转]
图片来源:http://ruby-china.org/topics/15979
- IT智力面试题
◆ 有一个长方形蛋糕,切掉了长方形的一块(大小和位置随意),你怎样才能直直的一刀下去,将剩下的蛋糕切成大小相等的两块? 答案:将完整的蛋糕的中心与被切掉的那块蛋糕的中心连成一条线.这个方法也适用于立方 ...
- further occurrences of HTTP header parsing errors will be logged at DEBUG level.错误
今天进行项目测试的时候出现了further occurrences of HTTP header parsing errors will be logged at DEBUG level.错误,查了半 ...
- pymysql实现从a表过滤出有效信息添加至b表
# Author: yeshengbao # -- coding: utf-8 -- # @Time : 2018/4/16 19:23 import pymysql # 创建连接 conn = py ...
- spring mvc中的注解说明
注解扫描 context:component-scan 包扫描 <context:component-scan base-package="org.bdp"> < ...
- poj 1012——Toseph
提交地址:http://poj.org/problem?id=1012 ...
- [USACO 03FEB]Farm Tour
Description When FJ's friends visit him on the farm, he likes to show them around. His farm comprise ...