美文网首页
宏任务和微任务

宏任务和微任务

作者: AriesMiki | 来源:发表于2022-11-16 14:35 被阅读0次

Javascript把任务分为宏任务和微任务。

ES5之后,Javascript引入了Promise,这样不需要浏览器Javascript本身也能发起异步任务了。

宏任务是由宿主环境(浏览器,Node发起),微任务是由Javascript自身发起的。

宏任务(浏览器,Node发起)

  • script
  • 事件
  • 网络请求(Ajax,Fetch)
  • setTimeout()单次 / setInterval()循环 定时器

微任务(Javascript引擎发起)

  • Promise
    注意:Promse是同步执行的,then catch回调函数是异步。

执行过程

1.同步代码(js执行栈,回调栈)

2.微任务的异步代码

  • process.nextTick() Node
  • Promise.then() catch()
  • Async/Await
  • Object.observe等

3.宏任务的异步代码

  • script代码块
  • setTimeout() / setInterval()

总结

1.先执行同步代码
2.然后执行异步代码里面的微任务队列
3.微任务队列执行顺序是先进入任务队列的会被先推到主线程先执行,后进入队列的后执行
4.这里要注意Promse是同步执行的,then catch回调函数才是异步任务里面的微任务
5.微任务里面的任务队列按照先进先出原则全部执行完后
6.最后再去检查宏任务队列,也是按照先进先出原则,执行宏任务里面的异步代码

相关文章

  • 微任务和宏任务@小四@王云飞

    微任务和宏任务 微任务 和 宏任务 表示异步任务的两种分类。 微任务(microtask)和宏任务(macrota...

  • 宏任务和微任务

    [js 宏任务和微任务] .宏任务(macrotask )和微任务(microtask ) macrotask 和...

  • 宏任务 和 微任务

    宏任务: 当前调用栈执行的代码成为宏任务,(主代码块和定时器)也或者宿主环境提供的叫宏任务 这些任务包括: 渲染事...

  • 宏任务和微任务

    介绍这个之前, 建议先了解一下事件循环[https://www.jianshu.com/p/106867eee55...

  • 宏任务和微任务

    浏览器是多线程执行代码,渲染的。但是浏览器只给JS一个线程来执行,因此JS是单线程。因此代码都是同步执行的,但是J...

  • # 宏任务和微任务

    首先说明 首先在JavaScript中,有同步代码和异步代码.这点很清晰. 代码的执行优先级顺序是,同步代码执行优...

  • 微任务和宏任务

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

  • 宏任务和微任务

    所谓微任务和宏任务 宏任务::常见的定时器,用户交互事件等等。可以理解是每次执行栈执行的代码就是一个宏任务。(宏任...

  • 2018-08-15 微任务 宏任务 MicroTask Mac

    微任务和宏任务 微任务(Microtask)宏任务(Microtask)process.nextTickPromi...

  • 浏览器的事件机制-Eventloop

    循环机制前,我们先要会区分:宏任务与微任务 宏任务Task与微任务Microtask JS中的宏任务和微任务的区别...

网友评论

      本文标题:宏任务和微任务

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