图1.
图2.
avaScript是单线程执行的语言,在同一个时间只能做一件事情。这就导致后面的任务需要等到前面的任务完成才能执行,
1.主线程上宏任务、微任务执行顺序:图1
主线程 >> 主线程上创建的微任务 >> 主线程上创建的宏任务
2.宏任务中包含微任务:图2
主线程 >> 主线程上的宏任务队列1 >> 宏任务队列1中创建的微任务
一个简单典型的例子
new Promise(function(resolve) {
console.log('promise1');
resolve();
}).then(function() {
console.log('promise2');
});
console.log('script end');
promise1
script end
promise2