js 异步执行顺序

2021-07-03  本文已影响0人  李小白呀

js的执行顺序,先同步后异步
异步中任务队列的执行顺序: 先微任务microtask队列,再宏任务macrotask队列
调用Promise 中的resolvereject属于微任务队列,setTimeout属于宏任务队列
注意以上都是 队列,先进先出。
微任务包括 process.nextTickpromiseMutationObserver
宏任务包括 scriptsetTimeoutsetIntervalsetImmediateI/OUI rendering

题目如下:

async function async1(){
    console.log('1')
    await async2()
    console.log('2')
}
async function async2(){
    console.log('3')
}
console.log('4')
setTimeout(function(){
    console.log('5') 
},0)  
async1();
new Promise(function(resolve){
    console.log('6')
    resolve();
}).then(function(){
    console.log('7')
})
console.log('8')

答案如下:
41368275

上一篇 下一篇

猜你喜欢

热点阅读