核心代码
注入abort终止方法
const request = (method, url, data, config = {}) => {
let options = Object.assign({}, config, {
url,
method,
baseURL: process.env.HTTP_API // 生产环境注释掉
});
options.data = options.data || {};
options.headers = options.headers || {};
let abort // 终止请求
let request = new Promise((resolve, reject) => {
abort = reject;
axios.request(options)
.then(res => {
let data = res.data;
if (!data) {
return resolve(data);
}
if (data.HasError) {
reject(res);
}
resolve(data);
}).catch(res => {
reject(res);
});
})
request.abort = abort
return request
};
调用方式
var request = request('get', "http://192.168.2.9:8888/", {})
request.then(d => console.log(d))
request.abort()//可以把request保存为全局变量,在界面关闭等位置调用