标签: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()
标签:data 异步请求 set art ret ext 执行顺序 col turn
原文地址:https://www.cnblogs.com/qq254980080/p/12043856.html