export const request = (params) =>{
let count =0;
return new Promise((resolve,reject)=>{
//开启一个等待框
wx.showLoading({
title:'请稍等...'
});
count++;
wx.request({
//...相当于去掉了对象的{}大括号
...params,
success(result){
resolve(result);
},
fail(err){
reject(err);
},
complete(){
if(--count<=0){
wx.hideLoading();
}
//关闭下拉刷新
wx.stopPullDownRefresh()
}
})
})
}
/**
1 new 一个promise
2 回调函数中写异步请求,请求成功调用 resolve,请求失败调用reject
3 promise 对象 的then方法 有两个参数,分别接受 resolve 和reject 中参数
4 当调用resolve 的时候,如果出错了,会被catch 方法捕获。
5 all 方法是所有的promise 方法执行完毕的时候才会执行,接受一个数组
**/
promise 做了什么?
1 你在他的内部调用异步请求,然后把异步请求的结果给 resolve 和 reject,他会把结果保存起来。
2 你可以通过then 方法获取到参数
3 在then 回调函数中 return 一个promise ,这样的话可以在then函数的后面继续 用 .then() 的方式获取回调函数
就是 promise.then(function resolve).then(...).then(...).then(...)
目的:解决了回调地狱的问题