任务执行优先级:同步代码 -> 微任务(Promise) -> 宏任务(setTimeout)
定时器模块负责计时,计时结束将任务放入任务队列,等待主线程轮询执行
setTimeout(() => {
console.log("宏任务里的同步代码");
new Promise(resolve => {
console.log("宏任务中Promise中的同步代码");
resolve();
}).then(() => {
console.log("宏任务里的微任务")
});
setTimeout(() => {
console.log("宏任务中的宏任务");
},1000);
}, 1000);
new Promise(resolve => {
console.log("Promise里的同步代码");
resolve();
}).then(() => {
console.log("微任务")
});
console.log("同步代码");
async function cal(num){
let result = await Promise.resolve().then(_ => {
let count = 0;
for(let i=0;i<num;i++){
count+= num--;
}
return count;
});
console.log(result);
}
cal(1111111111);
console.log("异步执行")
执行结果: