封装request请求
与page平级新建
request/index.js
文件使用方法:在
页面的.js
文件最上面添加import {request} from "../../request/index.js";
小程序中支持
es7
的async
语法(适用:不考虑兼容性的情况)注意:如果要适配某些旧手机,就不要使用es7语法;而采用promise语法
es6语法使用方法
:稳妥办法项目采用promise语法getSwiperList(){ request({url:"/home/swiperdata"}) .then(result=>{ this.setData({ swiperList: result }) }) },
与page平级新建request/index.js文件
// 同时发送异步代码的次数
let ajaxTimes = 0;
export const request = (params) => {
// 判断url中是否带有 /my/ 请求的是私有的路径 带上header token
let header = { ...params.header };
if (params.url.includes('/my/')) {
// 拼接header 带上 token
header["Authorization"] = wx.getStorageSync("token")
}
ajaxTimes++;
// 显示加载中效果
wx.showLoading({
title: "加载中",
mask: true
})
// 定义公共的url
const baseUrl = "https://api-hmugo-web.itheima.net/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()
}
}
})
})
}