Promise、Js异步之宏队列与微队列

回调原则:

1. 宏列队: 用来保存待执行的宏任务(回调), 比如: 定时器回调/DOM事件回调/ajax回调
2. 微列队: 用来保存待执行的微任务(回调), 比如: promise的回调/MutationObserver的回调
3. JS执行时会区别这2个队列
	JS引擎首先必须先执行所有的初始化同步任务代码
	**每次准备取出第一个宏任务执行前, 都要将所有的微任务一个一个取出来执行**
原则:每次准备取出第一个宏任务执行前, 都要将所有的微任务一个一个取出来执行
setTimeout(() => {
      // 会立即放入宏列队
      console.log('timeout callback1()')
      Promise.resolve(3).then(
        value => {
      // 会立即放入微列队
          console.log('Promise onResolved3()', value)
        }
      )
    }, 0)
    setTimeout(() => {
      // 会立即放入宏列队
      console.log('timeout callback2()')
    }, 0)
    Promise.resolve(1).then(
      value => {
      // 会立即放入微列队
        console.log('Promise onResolved1()', value)
      }
    ) 
    Promise.resolve(2).then(
      value => {
      // 会立即放入微列队
        console.log('Promise onResolved2()', value)
      }
    ) 

测试结果:
Promise、Js异步之宏队列与微队列_第1张图片

你可能感兴趣的:(promise,回调函数,同步异步,javascript)