Angular 中的 404 响应后如何继续循环?
How to continue loop after 404 response in Angular?
我查过你是否可以忽略 404 响应并继续你的循环,但我没有找到关于 Angular 的解决方案,所以我想在这里问这个问题。
我有以下代码:
for(let order of orders){
this.api.getURL(order.resource_url).then(data =>
this.detail = data;
);
// Do something with this.detail ...
}
如果请求 returns 一个 404 响应,循环应该转到下一个命令并检查请求 returns 是正确的响应还是再次出错。有人可以帮我吗?
当服务器响应 404 时,您收到异常。为避免它,您必须捕获该错误:
for(let order of orders){
this.api.getURL(order.resource_url).then(data => {
this.detail = data;
}, error => {
// error has been caught
});
}
已更新
你很挣扎,因为你正试图以同步的方式使用异步 api :)
尝试过滤失败的响应,然后进行计算:
Promise.all(
orders.map(order => this.api.getURL(order.resource_url).catch(() => null))
).then(responses => {
const successfulResponses = responses.filter(response => response != null)
for(let data of successfulResponses) {
// your following code
}
});
正如shumih所说,你必须捕获错误,在错误部分你可以调用continue;
(直接跳转到下一个循环-运行),以确保它执行下一个运行 你的循环。
该行: this.detail = data
无论如何都不应该在您收到 404 时执行,因为没有返回承诺,所以它不会进入 then({}) 部分。
我查过你是否可以忽略 404 响应并继续你的循环,但我没有找到关于 Angular 的解决方案,所以我想在这里问这个问题。
我有以下代码:
for(let order of orders){
this.api.getURL(order.resource_url).then(data =>
this.detail = data;
);
// Do something with this.detail ...
}
如果请求 returns 一个 404 响应,循环应该转到下一个命令并检查请求 returns 是正确的响应还是再次出错。有人可以帮我吗?
当服务器响应 404 时,您收到异常。为避免它,您必须捕获该错误:
for(let order of orders){
this.api.getURL(order.resource_url).then(data => {
this.detail = data;
}, error => {
// error has been caught
});
}
已更新
你很挣扎,因为你正试图以同步的方式使用异步 api :) 尝试过滤失败的响应,然后进行计算:
Promise.all(
orders.map(order => this.api.getURL(order.resource_url).catch(() => null))
).then(responses => {
const successfulResponses = responses.filter(response => response != null)
for(let data of successfulResponses) {
// your following code
}
});
正如shumih所说,你必须捕获错误,在错误部分你可以调用continue;
(直接跳转到下一个循环-运行),以确保它执行下一个运行 你的循环。
该行: this.detail = data
无论如何都不应该在您收到 404 时执行,因为没有返回承诺,所以它不会进入 then({}) 部分。