hx h5设置开启摇树优化
- 发布:2020-06-01 15:43
- 更新:2020-06-05 17:16
- 阅读:799
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
浏览器平台: Chrome
浏览器版本: 83.0.4103.61
项目创建方式: CLI
CLI版本号: 2.0.0-26920200403001
操作步骤:
预期结果:
hx h5设置开启摇树优化
hx h5设置开启摇树优化
实际结果:
hx h5设置开启摇树优化
hx h5设置开启摇树优化
bug描述:
i***@hotmail.com (作者)
[system] API `request` is not yet implemented
[system] API `showLoading` is not yet implemented
i***@hotmail.com (作者)
return new Promise((resolve, reject) => {
options.complete = (response) => {
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
uni.hideLoading();
// 清除定时器,如果请求回来了,就无需loading
clearTimeout(this.config.timer);
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
if(this.config.originalData) {
// 判断是否存在拦截器
if (this.interceptor.response && typeof this.interceptor.response === 'function') {
let resInterceptors = this.interceptor.response(response);
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
if (resInterceptors !== false) {
resolve(resInterceptors);
} else {
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
reject(response);
}
} else {
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
resolve(response);
}
} else {
if (response.statusCode == 200) {
if (this.interceptor.response && typeof this.interceptor.response === 'function') {
let resInterceptors = this.interceptor.response(response.data);
if (resInterceptors !== false) {
resolve(resInterceptors);
} else {
reject(response);
}
} else {
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
resolve(response.data);
}
} else {
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
if(response.errMsg) {
uni.showModal({
title: response.errMsg
});
}
reject(response)
}
}
}
// 判断用户传递的URL是否/开头,如果不是,加上/
options.url = Request.isHttp(options.url) ? options.url : (this.config.baseUrl + (options.url.indexOf('/') == 0 ?
options.url : '/' + options.url));
// 是否显示loading
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
// 而没有清除前者的定时器,导致前者超时,一直显示loading
if(this.config.showLoading && !this.config.timer) {
this.config.timer = setTimeout(() => {
uni.showLoading({
title: this.config.loadingText,
mask: this.config.loadingMask
})
this.config.timer = null;
}, this.config.loadingTime);
}
uni.request(options);
}).catch(e => {})
i***@hotmail.com (作者)
[system] API
request
is not yet implemented[system] API
showLoading
is not yet implemented2020-06-01 16:44