美文网首页
宏队列与微队列

宏队列与微队列

作者: soojade | 来源:发表于2019-12-20 17:38 被阅读0次

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

  • 宏队列存储的是:scriptsetTimeoutsetIntervalsetImmediateI/OUI rendering、ajax回调
  • 微队列存储的是:promisemutationprocess.nextTickObject.observeMutationObserver
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

相关文章

  • 宏队列与微队列

    1.javascript是单线程,基于事件循环,非阻塞IO的 特点:处理I/0的应用,不适合cpu运算密集的应用....

  • 宏队列与微队列

    js执行时有两个异步队列:宏队列和微队列。优先执行微队列中的任务,而且每次执行完宏队列中的任务后,都会查看微队列中...

  • 宏队列与微队列

    一、原理图 二、定义说明 JS 中用来存储待执行回调函数的队列包含 2 个不同特定的列队 宏列队:用来保存待执行的...

  • 2018-06-08 宏任务和微任务

    js先把宏任务放进宏任务队列里,再把微任务放进微任务队列里,执行的时候先执行宏任务队列里的一个任务,再把微任务队列...

  • JS 异步之宏队列 与 微队列

    # 前言 JS 中用来存储待执行回调函数的队列包含 宏队列 和 微队列 宏队列:用来保存待执行的宏任务(回调),比...

  • 微任务和宏任务

    JS是单线程的,可以把这个线程叫做主线程,主线程中包含宏任务队列和微任务队列,宏任务所在的队列就叫宏任务队列,微任...

  • 关于宏任务微任务的题

    第一道题: 解析:js任务队列有两种,宏任务队列,微任务队列。js的事件循环调度的就是宏任务队列。一个宏任务执行完...

  • Javascript-宏队列与微队列

    背景 当我们忙于公司业务开发,习惯于control+c、control+v这种机械化操作时,我们将会离我们的理想越...

  • JavaScript 异步编程

    同步模式与异步模式 时间循环与消息队列 异步编程的几种方式 Primise异步方案 宏任务 /微任务队列 Ge...

  • 循环的过程

    当某个宏任务执行完后,会查看是否有微任务队列。如果有,先执行微任务队列中的所有任务,如果没有,会读取宏任务队列中排...

网友评论

      本文标题:宏队列与微队列

      本文链接:https://www.haomeiwen.com/subject/gbuinctx.html