如下异步代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
console.log('start...');

setTimeout(()=>{
 console.log('first callback');
},2000)

setTimeout(()=>{
 console.log('second callback');
},0)



console.log('end...');

打印结果为:

1
2
3
4
start...
end...
second callback
first callback

总结:
首先执行了下面console.log(‘end…’);,再执行了settimeout的回调函数,即便是settimeout中的时间为0.
原因是nodejs的事件循环机制,出现了异步的效果。
参考:深度理解nodejs[2]-事件循环

nodejs渐入佳境[12]-node异步操作_前端