怎么建设淘客自己的网站_免费网站免费
最近看了一个帖子
事件循环机制-宏任务-微任务
把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