基于promise封装请求,使用async await语法糖,参考插件市场,插件ID:niudandan-promise
api.js
const BASE_URL = '你的域名';
export const myRequest = (options)=>{
let token = uni.getStorageSync('token')
return new Promise((resolve,reject)=>{
uni.request({
url: BASE_URL + options.url, // 将接口地址分为两部分,这样如果域名改变了好维护,接口地址从options中获取
header: {
token: token,
} || {},
method: options.method || 'GET',//默认Get
data: options.data || {},// data从options中获取,如果没有传入data, 则默认一个空对象
success: (res) => {
if (res.data.code === 1401) {
} else {
res
}
resolve(res);
},
fail: (err) => {
uni.showToast({
title: '请求接口失败',
});
reject(err);
},
});
})
}
main.js
//这个方法可能每个页面都会用到,我们可以在main.js中引入,
import {myRequest} from 'api.js'
//接收之后,挂载到全局,这样所有的页面都可以调用这个方法
Vue.prototype.$myRequest = myRequest;
使用方法:使用this.$myRequest进行调用
<button type="submit" @click="test()">发送请求</button>
methods: {
async test() {
const res = await this.$myRequest({
url: '/api.php'
})
this.dataa = res.data
}
}