1.promise是解决异步的方法,本质上是一个构造函数,可以用它实例化一个对象。
2.对象身上有resolve、reject、all,原型上有then、catch方法。
3.promise对象有三种状态:pending(初识状态/进行中)、resolved或fulfilled(成功)、rejected(失败)。
案例
获取三个接口文章导航、文章列表、文章评论,使用promise进行链式调用。
//获取文章分类导航
getNav(callback){
return new Promise((resolve,reject)=>{
uni.request({
url:'请求地址',
success:res=>{
resolve(res)
},
fail:err=>{
reject(err)
}
})
})
}
//获取文章列表
getArticle(id){
return new Promise((resolve,reject)=>{
uni.request({
url:'请求地址',
data:{
cid:id
},
success:res=>{
resolve(res)
},
fail:err=>{
reject(err)
}
})
})
}
//获取文章的评论
getComment(id){
return new Promise((resolve,reject)=>{
uni.request({
url:'请求地址',
data:{
aid:id
},
success:res=>{
resolve(res)
},
fail:err=>{
reject(err)
}
})
})
}
//promise链式调用
this.getNav().then(res=>{
let id=res.data[0].id;
return this.getArticle(id);
}).then(res=>{
let id=res.data[0].id;
return this.getComment(id)
}).then(res=>{
console.log(res)
})