在工作当中经常会使用到的promise函数,在这给自己稍微总结下,本身自己理解的不透彻,方便自己查看吧 - -
关于Promise的返回值
//promise函数
this.getAccessToken()
.then((data) => {
//如果有就解析 没有就会报错 就走 更新
try {
//解析
data = JSON.parse(data)
}catch (e) {
//返回一个可以更新access的promise的函数
return this.updateAccessToken()
}
//如果验证通过
if(this.isValidAccessToken(data)) {
Promise.resolve(data)
}else {
return this.updateAccessToken()
}
})
.then((data) => {
this.access_token = data.access_token
this.expires_in = data.expires_in
this.saveAccessToken(data)
})
- then函数内部还是返回的是promise函数,如果有promise函数,那么可以直接return一个以前写好的promise函数
- 如果返回的不是一个promise函数,那么可以直接return即可,之后依旧可以用then来接收返回的值,或者可以用promise.resolve(str)来包装使之变成一个真正的Promise对象,
promise.resolve('foo')等价于 ===》 new Promise(resolve => resolve('foo')) - promise函数在then回调中可以一直的进行promise下去