2018年11月20日 星期二
node.js process.nextTick 與 setImmediate() 差異
a();
process.nextTick(b);
process.nextTick(c);
d();
function a(){
console.log("a start");
setTimeout(() => {
console.log("a end");
}, 0)
}
function b(){
console.log("b start");
setTimeout(() => {
console.log("b end");
}, 0)
}
function c(){
console.log("c start");
setTimeout(()=>{
console.log("c end");
}, 0);
}
function d(){
console.log("d start");
setTimeout(() => {
console.log("d end");
}, 0);
}
-----------------
a start
d start
b start
c start
a end
d end
b end
c end
///////////////////////////////////////////////////////////////////
a();
setImmediate(b);
setImmediate(c);
d();
function a(){
console.log("a start");
setTimeout(() => {
console.log("a end");
}, 0)
}
function b(){
console.log("b start");
setTimeout(() => {
console.log("b end");
}, 0)
}
function c(){
console.log("c start");
setTimeout(()=>{
console.log("c end");
}, 0);
}
function d(){
console.log("d start");
setTimeout(() => {
console.log("d end");
}, 0);
}
-----------------
a start
d start
a end
d end
b start
c start
b end
c end