宏任务和微任务
setTimeout(function(){
console.log('1')
});
newPromise(function(resolve){
console.log('2');
}).then(function(){
console.log('3')
});
console.log('4');
因为settimeout是宏任务,虽然先执行,但是被放到了宏任务的eventqueue里面,然后代码继续往下检查看有没有微任务,检测到Promise的then函数把他放入了微任务序列。等到主线进程的所有代码执行结束后。先从微任务queue里拿回掉函数,然后微任务queue空了后再从宏任务的queue拿函数。
|
|