生活随笔
收集整理的這篇文章主要介紹了
事件循环机制(even loop)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
總結(jié)
- 同步代碼優(yōu)先級(jí)高于異步代碼優(yōu)先級(jí);
- new Promise(fn)中的fn是同步執(zhí)行;
- 微任務(wù)優(yōu)先級(jí)高于宏任務(wù)優(yōu)先級(jí);
- 微任務(wù):process.nextTick() > Promise.then()
- 宏任務(wù):setTimeout、setInterval > setImmediate
console.log('1'
);setTimeout(function() {console.log('2'
);process.nextTick(function() {console.log('3'
);})new Promise(
function(resolve) {console.log('4'
);resolve();}).then(function() {console.log('5'
)})
})
process.nextTick(function() {console.log('6'
);
})
new Promise(
function(resolve) {console.log('7'
);resolve();
}).then(function() {console.log('8'
)
})setTimeout(function() {console.log('9'
);process.nextTick(function() {console.log('10'
);})new Promise(
function(resolve) {console.log('11'
);resolve();}).then(function() {console.log('12'
)})
})
// 輸出結(jié)果:1 7 6 8 2 4 9 11 3 10 5 12 setImmediate(() =>
{console.log('第一行setImmediate'
);
}, 0
);
var time = setInterval(() =>
{console.log('第二行 setInterval'
);clearInterval(time);
}, 0
);
setTimeout(() =>
{console.log('第三行 setTimeout'
);
}, 0
);
var time1 = setInterval(() =>
{console.log('第四行 setInterval'
);clearInterval(time1);
}, 0
);
setImmediate(() =>
{console.log('第五行setImmediate'
);
}, 0
);
process.nextTick(() =>
{console.log('第六行 nextTick'
);
});
new Promise((resolve, reject) =>
{reject('reject'
);console.log('第七行Promise'
);resolve('resolve'
);
}).then(() =>
{console.log('第八行 Promise then resolve'
);
}.catch() =>
{console.log('第八行 Promise then reject'
);
});// 輸出結(jié)果:
// 第七行Promise【先執(zhí)行同步】
// 第六行 nextTick【微任務(wù)】
// 第八行 Promise then resolve【微任務(wù)】
// 第二行 setInterval【宏任務(wù)】
// 第三行 setTimeout【宏任務(wù)】
// 第四行 setInterval【宏任務(wù)】
// 第一行setImmediate【宏任務(wù)】
// 第五行setImmediate【宏任務(wù)】 請(qǐng)注意,node環(huán)境下的事件監(jiān)聽依賴libuv與前端環(huán)境不完全相同,輸出順序可能會(huì)有誤差!!
請(qǐng)注意:chrome中間層 & node中間層libuv
轉(zhuǎn)載于:https://www.cnblogs.com/hujingxuan1437/p/11120708.html
總結(jié)
以上是生活随笔為你收集整理的事件循环机制(even loop)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。