1.
console.log(1);
setTimeout(function(){
console.log(2);
})
Promise.resolve().then(function() {
console.log(3);
}).then(function() {
console.log(4);
});
//
正确输出结果 : 1,3,4,2
宏任务(task)和微任务(micro task )
1、js中为了防止线程阻塞,阻止全局代码的执行,衍生出很多异步执行解决方案,这些方案都会按需加载到指定的队列中,当全局队列执行完毕后,开始循环从 微队列->宏队列->微队列->宏队列...这种执行顺序执行下去。
2、当一个宏观队列执行完毕,立刻执行最近添加的微观队列。
setTimeout(function(){
Promise.resolve().then(function() {
console.log(3);
}).then(function() {
console.log(4);
});
console.log(2);
})
//
正确输出结果 : 2,3,4
参考文章:
1.https://www.jianshu.com/p/ada516ceb1da
2.https://www.cnblogs.com/dong-xu/p/7000139.html