新建request.js
const baseUrl = 'http://xxx.xxxx.xxx';//接口域名
let reqCount = 0,resCount = 0;//記錄請求次數(shù)和響應(yīng)次數(shù)
const request = (options) => {
reqCount++;
uni.showLoading();
return new Promise((resolve, reject) => {
uni.request({
method: options.method,
url: baseUrl + options.url,
data: options.data,
header: options.header//如需其他配置可在此添加或先轉(zhuǎn)換options.url咳焚,然后 ...options
}).then((response) => {
resCount++
if(reqCount === resCount) uni.hideLoading();//防止連續(xù)請求多個(gè)接口時(shí)loading閃現(xiàn)
let [error, res] = response;
resolve(res.data);
}).catch(error => {
resCount++
if(reqCount === resCount) uni.hideLoading();
let [err, res] = error;
reject(err)
})
});
}
export default request
main.js中:
導(dǎo)入request含长,并掛載到vue
import request from "utils/request.js"
Vue.prototype.$request = request
在組件中使用:
this.$request({
url:"/xxx/xxx/xxx",
method:"POST",
data:{"id":1}
}).then((res)=>{
console.log(res)
}).catch((error)=>{
console.log(error)
})