如果失败但使用不同的参数来获取默认数据,则调用相同的 http 请求
call the same http request if it fails but with different parameter to get default data
如果第一个失败但使用不同的参数以 return 一些默认数据,在 catch 中调用相同的 http 请求调用是否有意义?
var defaultData = false;
clientService.getClients(defaultData)
.then(function (res) {
//do something
}).catch(function (err) {
defaultData = true;
clientService.getClients(defaultData)
.then(function (res) {
//do something
}).catch(function (err) {
console.log(err)
});
});
或者这是一个糟糕的方法?
确保 return
新承诺到 catch 处理程序。然后代码将正确链接并避免嵌套:
clientService.getClients({defaultData:false})
.catch(function (err) {
return clientService.getClients({defaultData: true})
}).then(function (res) {
//return something
}).catch(function (err) {
console.log(err)
//IMPORTANT re-throw err
throw err;
});
这个问题还不错,但我认为你必须找到失败的原因并在家具上采取一些措施。
最好的是你必须创建一个错误处理程序,如:
errorHandler(error:any){
///.....
}
在这个方法中你应该检查响应的状态码,比如如果是500,你就不能再调用了。或者类似这样的东西。
如果第一个失败但使用不同的参数以 return 一些默认数据,在 catch 中调用相同的 http 请求调用是否有意义?
var defaultData = false;
clientService.getClients(defaultData)
.then(function (res) {
//do something
}).catch(function (err) {
defaultData = true;
clientService.getClients(defaultData)
.then(function (res) {
//do something
}).catch(function (err) {
console.log(err)
});
});
或者这是一个糟糕的方法?
确保 return
新承诺到 catch 处理程序。然后代码将正确链接并避免嵌套:
clientService.getClients({defaultData:false})
.catch(function (err) {
return clientService.getClients({defaultData: true})
}).then(function (res) {
//return something
}).catch(function (err) {
console.log(err)
//IMPORTANT re-throw err
throw err;
});
这个问题还不错,但我认为你必须找到失败的原因并在家具上采取一些措施。 最好的是你必须创建一个错误处理程序,如:
errorHandler(error:any){
///.....
}
在这个方法中你应该检查响应的状态码,比如如果是500,你就不能再调用了。或者类似这样的东西。