宏队列与微队列

2019-12-20  本文已影响0人  soojade

js执行时有两个异步队列:宏队列微队列。优先执行微队列中的任务,而且每次执行完宏队列中的任务后,都会查看微队列中是否有任务,假如有任务则先执行微队列中的任务,再执行宏队列中的任务。例外:浏览器会先执行一个宏任务——script

setTimeout(() => {
    console.log('我是宏队列1')
    Promise.resolve(3).then(val => {
        console.log('我是微队列' + val)
    })
}, 0)
setTimeout(() => {
    console.log('我是宏队列2')

}, 0)
Promise.resolve(1).then(val => {
    console.log('我是微队列' + val)
})
Promise.resolve(2).then(val => {
    console.log('我是微队列' + val)
})

console.log('我是主线程')

执行结果如下:

我是主线程
我是微队列1
我是微队列2
我是宏队列1
我是微队列3
我是宏队列2

上一篇 下一篇

猜你喜欢

热点阅读