JS事件循环基础:
宏任务:<script>(里面的整体代码),setTimeout, setInterval
微任务:Promise(里面的resolve和reject)
setTimeout(() => {
console.log("setTimeout新的宏任务");
}, 0);
new Promise(resolve => {
resolve();
console.log("promise主线程任务");
}).then(value => console.log("resolve微任务"));
console.log("主线程任务");
执行顺序:
Promise里面的任务 console.log("promise");
, 和 console.log("后盾人");
属于当前宏任务主线程任务,优先执行
Promise里面的resolve 是微任务,当前宏任务主线程全部执行完之后执行
setTimeout 是新的宏任务,在当前宏任务主线程任务和微任务执行完之后执行
以上代码打印顺序为:
promise主线程任务 》 主线程任务 》 resolve微任务 》 setTimeout新的宏任务