码迷,mamicode.com
首页 > 其他好文 > 详细

多个Promise执行顺序

时间:2019-12-15 14:30:13      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:data   异步请求   set   art   ret   ext   执行顺序   col   turn   

app.isLogin()
    // 判断是否登录后
    .then(res=>{
        this.setData({
          login: true
        }, res2=>{
          // 清空临时积分
          return app.clearTempScore()   // 返回Promise
        })
    })
    .then(res => {
      console.log(.then..............)
    })
    .catch(err=>{
      console.log(err)
    })

1、setData中返回Promise

   会直接执行第二个.then(),即使app.clearTempScore返回的状态是pending(正常返回的Promise,状态是pending,不会执行.then())

   因为setData是异步请求,会拿到 临时储物台 执行,此时,流水线上并没有 返回 Promise

   所以,会顺序执行流水线上的第二个.then()

app.isLogin()
    // 判断是否登录后
    .then(res=>{
        
    })
    .then(res => {
      console.log(.then..............)
    })
    .catch(err=>{
      console.log(err)
    })

2、第一个.then()中没有直接的 return 一个Promise,代码会顺序执行第二个.then()

3、第一个.then()中如果有直接的 return 一个Promise(流水线上return了一个Promise),代码才会 等待 return 的这个Promise,有了 resolve 或 reject 状态后, 再执行第二个.then()

多个Promise执行顺序

标签:data   异步请求   set   art   ret   ext   执行顺序   col   turn   

原文地址:https://www.cnblogs.com/qq254980080/p/12043856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!