setImmediate介绍
time 2m04s
setTimeout cb中代码会在,js执行栈同步代码运行完之后运行
setTimeout(() => {
console.log('over');
console.log('over');
console.log('over');
console.log('over');
console.log('over');
console.log('over');
},0);
console.log('starting');
console.log('operating');
time 2m57s
setImmediate是等待下面完成后,再去完成
setImmediate(() => {
console.log('over');
console.log('over');
console.log('over');
console.log('over');
console.log('over');
console.log('over');
});
console.log('starting');
console.log('operating');
在浏览器中运行报错,需要在node中运行
setImmediate,比setTimeout更好的选择,但没有成为标准
setImmediate区别
time 13m30s
setTimeout(() => {
console.log('setTimeout');
},0);
setImmediate(() => {
console.log('setImmediate');
});
多次node运行,这两种结果都有可能
time 16m47s
你知识储备有多大,不仅仅是建立在你学了多少东西,还建立在你是不是每一个东西的文档都读透了,如果文档任何一句话你没有搞懂,就证明你不专业,出来听讲,还是得看文字,看完档
文档中的文字可以提供很多灵感
在io操作,耗时操作中,setImmediate总是会比setTimeout先执行,不管它前面有几个setTimeout,这是最大的优势