业务是有两个服务地址a、b,当第一个服务地址请求不通时请求另一个。
测试结果:
配置个请求不到的地址a,造成网络超时;
如果直接uni.request请求b地址是通的,可以确定b地址没有问题;
如果在第一个uni.request去请求a,然后在fail方法里写第二个uni.request去请求b地址,结果第二个请求报网络超时。
第二个请求代码如下:
fail: (res) => {
console.log(JSON.stringify(res));
console.log(this.$proxyServerUrl + params.url);
console.log(params.data);
console.log(params.header);
console.log(params.method);
// 二次请求代理地址
uni.request({
url: this.$proxyServerUrl + params.url,
data: params.data,
header: params.header,
method: params.method,
success: (res) => {
if (params.showLoading) {
uni.hideLoading();
}
// 请求处理结果,0成功,1失败
var errcode = res.data.errcode;
var errmsg = res.data.errmsg;
if (errcode == 0 ) {
// 服务端正常请求数据
if (params.success) {
params.success(res.data);
}
}
},
fail: (res) => {
console.log(5);
if (params.showLoading) {
uni.hideLoading();
}
if (params.fail) {
params.fail(res);
}else{
uni.showToast({
title: '代理网络连接超时,请稍后重试!',
icon: 'none'
});
}
console.log(JSON.stringify(res));
}
});
}
1 个回复
比十石开 (作者)
测试:如果在第一个请求的success方法里发起第二个请求是可以的,这个是什么原因呢