requestTree:{},
request(options={}){//统一约定,请求调用此方法
var url = options.url;
var method = options.method;
var header = options.header || {};
var data = options.data || {};
//请求方式
if(method){
method = method.toUpperCase();
if(method === "POST" && JSON.stringify(header) == "{}"){
header = {"content-type":"application/x-www-form-urlencoded"}
}
}
// 发送请求 加载动画
if(!options.hideLoading){
uni.showLoading({
title:"加载中"
})
}
this.requestTree[options.url]=uni.request({
url : url,
method : method || "GET",
header : header,
data : data,
success : res =>{
if(res.statusCode && res.statusCode !== 200){
uni.showModal({
content:res.data.message
})
return;
}
typeof options.success == "function" && options.success(res.data);
},
fail: (e) => {
if(e.errMsg === "request:fail abort") return;
typeof options.fail == "function" && options.fail(e.data);
},
complete: (e) => {
uni.hideLoading();
typeof options.complete == "function" && options.complete(e.data);
return;
}
});
},
abortRequest(options={}){//此方法会打断所有发送中请求
for(let name in this.requestTree){
console.log(name);
this.requestTree[name].abort();
}
}
};
uniapp封装中断请求
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 以下内容直接放入main.js中,方法都是挂载在vue原型上的,使用this直接调用 import Vue fro...
- 在项目根目录下新建service文件夹,后续封装的文件放在这个文件夹下。 主要的封装是在LsxmRequest.j...