宏任务与微任务

Posted smart-girl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏任务与微任务相关的知识,希望对你有一定的参考价值。

老规矩,先放两道题目,先看看会有什么结果输出,然后我们一起研究为什么

async function async1(){
    console.log("async1 start");
    await async2();
    console.log("async1 end");
}
async function async2(){
    console.log("async2");
}
console.log("script start");
setTimeout(function(){
    console.log("setTimeout");
},0)
async1();
new Promise(function(resolve){
    console.log("promise1");
    resolve();
}).then(
    function(){
        console.log("promise2");
    }
);console.log("script end");
/*script start
async1 start
async2
 promise1
script end
async1 end
 promise2
undefined
setTimeout/*
new Promise(function(resolve){
   console.log('2');
}).then(function(){
   console.log('3')
});

console.log('4');

//2
//4
new Promise(function(resolve){
    console.log('2');
    resolve();
}).then(function(){
    console.log('3')
});

console.log('4');

//2
//4
//3
async function async1(){
    console.log("async1 start");
    await async2();
    console.log("async1 end");
}
async function async2(){
    console.log("async2");
}
console.log("script start");
setTimeout(function(){
    console.log("setTimeout");
},0)
/*async1();
script start
async1 start
async2
async1 end
Promise?{<resolved>: undefined}
setTimeout*/

未完,待续...

以上是关于宏任务与微任务的主要内容,如果未能解决你的问题,请参考以下文章

尝试理解JavaScript中的宏任务与微任务

JS同步任务与微任务和宏任务

宏任务与微任务

JavaScript之事件循环,宏任务与微任务

[JS]事件循环怎么处理宏任务与微任务

[JS]事件循环怎么处理宏任务与微任务