Node.js-提供了四种形式的定时器

 1 Node.js提供了四种形式的定时器
 2 global.setTimeout();      //一次性定时器
 3 global.setInterval();       //周期性定时器
 4 global.nextTick();          //本次事件循环结束时立即执行的定时器
 5 global.setImmediate();  //下次事件循环立即执行的定时器
 6
 7 var i=1;
 8 setTimeout(()=>{
 9     console.log(i);
10 },1000);
11
12 //1秒之后,打印出0,1,2,3,4
13 for(var i=1;i<=3;i++){
14     setTimeout(()=>{
15         console.log(i)
16     },1000)
17 }
18
19 //闭包
20
21 for(var i=1; i<=3; i++){
22     setTimeout(outer(i),1000)  //定期定时器
23 }
24 function outer(num){
25     return function(){
26         console.log(num)
27     };
28 }
29
30 //使用箭头函数完成上面的闭包功能
31
32 for(var i=1;i<=3;i++){
33     setTimeout(((num)=>{
34         return ()=>{console.log(num);}})(i),1000)
35 }
36
37 setInterval 周期性定时器
38 var count=0;
39 var timer=setInterval(function(){
40     count++;
41     console.log(‘%d hello‘,count);
42     if(count>5){
43         clearInterval(timer);
44     }
45   },1000);
46
47 //setTimeout  一次性定时器
48 var count2=0;
49 var timer2=setTimeout(function(){
50     count2++;
51     if(count2<=5){
52         console.log(‘%d hello‘,count2);
53         setTimeout(arguments.callee,1000);  //arguments
54     }else{
55         clearTimeout(timer2);
56     }
57 },1000)
 1 //setImmediate(); 下次事件循环立即执行的定时器
 2 setImmediate(function(){
 3     console.log(‘Immediate 1.....‘);
 4 });
 5 process.nextTick(function(){
 6     console.log(‘nextTick 1......‘);
 7 });
 8 setTimeout(function(){console.log(‘setTimeout 2....‘)},1000)
 9 process.nextTick(function(){
10     console.log(‘nextTick 2......‘);
11 });
12 setImmediate(function(){
13     console.log(‘nextTick 3......‘);
14 });
15 console.log(‘end....‘);
时间: 2024-08-10 22:07:47

Node.js-提供了四种形式的定时器的相关文章

ReactJs条件判断的四种形式

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>ReactJs</title><script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script><script src="ht

C++提供的四种新式转换--const_cast dynamic_case reinterpret_case static_case

1.const_cast通常被用来将对象的常量刑转换,它也是唯一有此能力的C++-style转型操作符. 2.dynamic_cast主要用来执行"安全向下转型",也就是用来决定某对象是否归属继承体系中的某个实现.他是唯一无法由旧式语法执行的动作,也是唯一可能耗费重大运行成本的转型动作. 3.reinterpret_case意图执行低级转型,实际动作(及结果)可能取决于编译器,这也就表示它不可移植.例如将一个pointer to int转型为一个int,这一类转换在低级代码意外很少见到

js创建对象的四种方式以及消耗时间比较

// Property-less object console.time('zoop1'); var zoop = (function (numObjects) { var pooz = Object.create(null); for(var i = 0; i< numObjects; i++) { pooz[i] = Object.create(null); } return pooz; })(1000000); console.timeEnd('zoop1'); // Using Obje

OAuth2 RFC 6749 规范提供的四种基本认证方案

OAuth2 RFC 6749 规范提供了四种基本认证方案,以下针对这四种认证方案以及它们在本实现中的使用方式进行分别说面. 第一种认证方式: Authorization Code Grant (授权码认证) 授权码通过使用授权服务器做为客户端与资源所有者的中介而获得.客户端不是直接从资源所有者请求授权,而是引导资源所有者至授权服务器(由在RFC2616中定义的用户代理),授权服务器之后引导资源所有者带着授权码回到客户端. 在引导资源所有者携带授权码返回客户端前,授权服务器会鉴定资源所有者身份并

------------参数传递的四种形式----- URL,超链接,js,form表单

什么时候用GET,  查,删, 什么时候用POST,增,改  (特列:登陆用Post,因为不能让用户名和密码显示在URL上) 4种get传参方式 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>&

Node.js提供了哪些内容

Nodejs运行时,JavaScript代码运行时的环境. 提供了一些核心模块,应用程序编程接口(Application Program Interface,API) 官方API文档https://nodejs.org/dist/latest-v12.x/docs/api/ 国内API文档http://nodejs.cn/api/   交互式解析器(Read Execute Print Loop,REPL),以及一些相关的命令 打开命令窗口,输入node并回车,即可进入交互式解析器 输入.hel

if分支的四种形式

分支:——四种if一.if(条件表达式){} 二.if(条件表达式){}else{} 三.if(条件表达式){}else if(条件表达式){}else if(条件表达式){}....else{} 四.if(条件表达式){ if(条件表达式) { } .....}else{ if(条件表达式) { } .....} 作业:1.输入年.月.日,判断输入的日期格式是否正确 //如何用计算机来生成随机数Random rand = new Random();int n = rand.Next(10);

node.js提供的服务器live-server的使用

安装node.js的版本控制工具nvm,在终端中执行 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 重新进入终端,使用nvm安装最新版本的node.js nvm install node 安装live-server npm install -g live-server 创建成功后,在静态文件目录下使用lver-server就可以了 live-server运行在8080端口下

jdk提供的四种线程池

一.线程池什么时候用,有什么好处? "线程池"顾名思义,就是存放线程的池子,这个池子可以存放多少线程取决于采用哪种线程池,取决于有多少并发线程,有多少计算机的硬件资源.使用线程池最直接的好处就是:线程可以重复利用.减少创建和销毁线程所带来的系统资源的开销,提升性能(节省线程创建的时间开销,使程序响应更快). 二.JDK自带4种的线程池(JDK1.5之后) 2.1.固定线程数的线程池(newFixedThreadPool) 这种线程池里面的线程被设计成存放固定数量的线程,具体线程数可以考