一、初次封装
export const request = (params) => {
const baseUrl = "xxx.xxx.xx.xxx";
return new Promise((resolve, reject) => {
wx.request({
...params,
url: baseUrl + params.url,
success: (result) => {
resolve(result.data.message);
},
fail: (err) => {
reject(err);
},
complete: () => {
}
});
})
}
二、考虑token
let header = {
...params.header
};
if (params.url.includes("/my/")) {
header["Authorization"] = wx.getStorageSync("token");
}
三、完整代码
let ajaxTimes = 0;
export const request = (params) => {
let header = {
...params.header
};
if (params.url.includes("/my/")) {
header["Authorization"] = wx.getStorageSync("token");
}
ajaxTimes++;
wx.showLoading({
title: "加载中",
mask: true
});
const baseUrl = "https://api.zbztb.cn/api/public/v1";
return new Promise((resolve, reject) => {
wx.request({
...params,
header: header,
url: baseUrl + params.url,
success: (result) => {
resolve(result.data.message);
},
fail: (err) => {
reject(err);
},
complete: () => {
ajaxTimes--;
if (ajaxTimes === 0) {
wx.hideLoading();
}
}
});
})
}
四、使用
import { request } from "../../request/index.js";
async getGoodsDetail(goods_id) {
const goodsObj = await request({ url: "/goods/detail", data: { goods_id } });
this.GoodsInfo = goodsObj;
let collect = wx.getStorageSync("collect") || [];
let isCollect = collect.some(v => v.goods_id === this.GoodsInfo.goods_id);
this.setData({
goodsObj: {
goods_name: goodsObj.goods_name,
goods_price: goodsObj.goods_price,
goods_introduce: goodsObj.goods_introduce.replace(/\.webp/g, '.jpg'),
pics: goodsObj.pics
},
isCollect
})
},