新建文件夹及文件
- config.js 配置文件
export default {
url: "",
method: "GET",
timeout: 6000
}
- interface.js
import _config from "./config.js";
export default function $http(options) {
options.url = _config.url + options.url;
return new Promise((resolve, reject) => {
_config.success = (res) => {
if (res.statusCode == 200) {
resolve(res);
} else {
if (options.handle) {
reject(res.statusCode);
} else {
try {
Promise.reject(res).catch(err => {
_page_error(res.statusCode || res.errMsg);
});
} catch (e) {
console.log(e)
}
}
}
}
_config.fail = (err) => {
let reg = /request:fail/;
if (reg.test(err.errMsg)) {
reject("noNetWork");
} else {
reject("requestTimeOut");
}
}
uni.request(Object.assign({}, _config, options));
});
}
function _page_error(err) {
switch (err) {
case 401:
console.error("请求被拒绝")
break;
case 404:
console.error("没有找到接口地址")
break;
case 405:
console.error("错误的请求")
break;
}
}
- index.js
import https from "./interface.js";
const testApi= (data) => {
return https({
url: '/api/test',
method: 'GET',
data
})
}
export default {
testApi
}
- 使用 promise 判断当前页面所有接口是否请求完成
import $http from "./index.js";
let promiseAllArr = [that.$http.testApi({type: 1}), that.$http.testApi({type: 2})];
Promise.all(promiseAllArr).then(res => {
console.log("res", res);
}).catch(err => {
console.log("err", err);
});