Promise和setTimeOut执行顺序

setTimeOut代码会在下一轮“事件顺序”开始执行,所以他都是最后输出的
//以下会在下一个事件顺序开始执行
    setTimeout(function (){  //看到setTimeout就知道,一开始不会执行里面内容滴
      var np = new Promise(function (resolve,reject){
        //定义一个promise
        console.log(1)
        resolve()  //执行成功的语句
      })

      np.then(_=>{
        console.log(2)
      })
      console.log(3)
    },1000)



    
    var pro = new Promise((resolve, reject)=>{

      console.log(5)
      resolve()
    }).then(_=>{
      setTimeout(function (){
        console.log(6)
      },0)  //若这个定时事件为1000的话,6就会最后输出 5,7,1,3,2,6
      return 7;
    }).then(n=>{
      console.log(n)
    })
    //以下输出结果是 5,7,6,1,3,2
    //7为啥比6先输出是因为它进入了setTimeout所以要等下一轮事件之后,才会执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值