小程序-封装 wx.request
- 传入请求参数对象,返回一个Promise对象
export const request=(params)=>{
return new Promise((resolve,reject)=>{
wx.request({
...params,
success:(result)=>{resolve(result.data);},
fail:(err)=>{reject(err);},
});
})
}
- 抽出公共URL
let baseURL = "https://xxxxx.net/api/";
params.url = baseURL + params.url;
//这样请求https://xxxxx.net/api/home 时只需要传'/home'
- 给需要授权的请求添加请求头,设置token
params.url.includes("/my/") && (header["Authorization"]=wx.getStorageSync("token"));
- 添加请求加载动画,请求完成时关闭动画
// 显示加载中 效果
wx.showLoading({ title: "加载中", mask: true });
wx.request({
...,
complete(){
// 关闭正在等待的图标
wx.hideLoading();
}
})
注意: 当一个页面多个请求时,这里的请求加载动画会在第一个请求完成时被关闭,所以需要追踪到页面所有请求完成再关闭
let req_nums=0;
export const request=(params)=>{
req_nums++;
wx.showLoading({...});
return new Promise((resolve,reject)=>{
wx.request({
complete:()=>{
req_nums--;
// 所有请求完成 关闭正在等待的图标
req_nums===0 && wx.hideLoading();
}
});
})
}