js代码执行顺序(异步、同步)

写出以下JavaScript代码的执行顺序:

async function a1() {
      console.log('a1 start')
      await a2()
      console.log('a1 end')
    }
    async function a2() {
      console.log('a2')
    }
    console.log('js start')
    setTimeout(() =>{
      console.log('setTiomeOut')
    },0)
    Promise.resolve().then(() => {
      console.log('promise1')
    })
    a1()
    let Promise2 = new Promise((resolve) => {
      resolve('promise.then')
      console.log('promise2')
    })
    Promise2.then((res)=>{
      console.log(res)
      Promise.resolve().then(()=>{
        console.log('Promise3')
      })
    })
    console.log('js end')

先自己想想哦,答案在最后哦
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

js start
a1 start
a2
promise2
 js end
promise1
a1 end
promise.then
Promise3
setTiomeOut

在这里插入图片描述

详见:查看解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值