关于Promise这里不多做解释,相关请查阅资料,直接上代码,说明可以看注释
//新建一个request.js文件,代码如下
// 接口请求的数量
let ajsxTimes = 0
export const request=(methods,url,data)=>{
ajsxTimes++
// 显示加载中效果
wx.showLoading({
title: "加载中",
mask: true,
});
// 提取公共的URL
const baseURL = "" //这里存放公共的请求头地址
return new Promise((resolve,reject)=>{
wx.request({
// 解构params
...url,
url:baseURL+url.url,
methods: methods || 'get',
data,
// 返回成功
success:(result)=>{
resolve(result.data.data) //这里根据后台接口自行更改
},
// 返回失败
fail:(err)=>{
reject(err)
},
complete:()=>{
ajsxTimes--;
// 如果数量为0,执行Loading关闭
if(ajsxTimes===0){
wx.hideLoading()
}
}
})
})
}
接下来就是使用啦,在你需要使用的wx.js最上面引入建立的request文件,使用方法如下:
//引入async
import regeneratorRuntime from '../../lib/runtime/runtime';
import { request } from '../../request/index.js'
Page({
/**
* 页面的初始数据
*/
data: {
parmise: {},
resetList: []
},
onLoad(options) {
this.List()
},
// 获取列表
async List(){
const parmise = this.data.parmise
const res = await request('get',{ url: `/v1/app/script/scriptDetail/list/?no_page=true`},parmise)
this.setData({
resetList:res
})
},
})