[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解
Posted iOSTianNan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解相关的知识,希望对你有一定的参考价值。
最近看了一个帖子
把js单线程中 , 主线程 | 宏任务 | 微任务 的调用顺序讲解的很直白精巧 , 记录一下以供查阅
1.主线程, 可以理解为从上到下顺序执行的一个js线程
2. 宏任务 script / setTimeOut /setInterval等
3. 微任务主要有promise等
4. 热知识: new Promise 也算主线程
执行的顺序 我们可以这样理解
1.主线程内顺序执行
2.遇到 setTimeout等宏任务, 会把宏任务的回调代码放到 宏任务队列
中排队
3.遇到 promise等微任务, 会把微任务(如.then
)的回调代码 放到 微任务队列
中排队执行
4.主线程完全执行完毕了, 再开始处理 宏任务队列
和 微任务队列
, 且 优先将微任务队列
清空完毕,再完成宏任务队列
的代码执行
5.当遇到 new Promise, 把他当做 主线程执行即可.
题3:
console.log(1);
setTimeout(function()
console.log(2);
, 0);
new Promise(function(resolve)
console.log(3);
resolve(Date.now());
).then(function()
console.log(4);
);
console.log(5);
setTimeout(function()
new Promise(function(resolve)
console.log(6);
resolve(Date.now());
).then(function()
console.log(7);
);
, 0);
/// answer : 1 3 5 4 2 6 7
以上是关于[jS 事件循环理解] 主线程 宏任务 微任务 - 执行顺序优先级理解的主要内容,如果未能解决你的问题,请参考以下文章