同步异步宏任务微任务

执行顺序:同步->异步(微任务->宏任务)

宏任务:setTimeout/setInterval/AJAX

微任务:promise.then .catch .finally node's . nextTick

console.log('1')    //同步

setTimeout(function(){
 console.log('2')  //异步宏任务
},0)

new Promise((resolve)=>{
  console.log('3')   //同步  promise中的then finally catch才是异步
  resolve()
}).then(()=>{
  console.log('4')   //异步微任务
}).finally(()=>{
  console.log('5')    //异步微任务
})

console.log('6')   //同步

1,3,6,4,5,2

 

await关键词后面一搬跟一个promise对象

await会永远等到后面的promise进行resolve

await上方的代码是同步代码

export default {
  methods:{
    async test(){
      console.log(2)
      await new Promise(function (resolve,reject){resolve})
               console.log(3)
    },
    test1(){
      console.log(1)
      this.test()
      console.log(4)
  }
}

执行顺序 : 1,2,4,3

posted @ 2022-09-12 17:08  ajaXJson  阅读(38)  评论(0编辑  收藏  举报