小程序-封装 wx.request

  1. 传入请求参数对象,返回一个Promise对象
export const request=(params)=>{
  return new Promise((resolve,reject)=>{
    wx.request({
     ...params,
     success:(result)=>{resolve(result.data);},
     fail:(err)=>{reject(err);},
    });
  })
}
  1. 抽出公共URL
let baseURL = "https://xxxxx.net/api/";
params.url = baseURL + params.url;
//这样请求https://xxxxx.net/api/home 时只需要传'/home'
  1. 给需要授权的请求添加请求头,设置token
  params.url.includes("/my/") && (header["Authorization"]=wx.getStorageSync("token"));
  1. 添加请求加载动画,请求完成时关闭动画
  // 显示加载中 效果
  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();
     }
    });
  })
}
posted @ 2022-03-21 17:27  ~LemonWater  阅读(157)  评论(0)    收藏  举报