我有以下代码
const result = fetch(`link`${id})
.then(response => response.json())
.then(data => {
let link;
if (data && data.url) {
link = data.url.href;
}
return fetch(link);
})
.then(response => response.json())
.catch(() => {
//do something
});
result
.then(data => {
let link;
if (data && data.url1) {
link = data.url1.href;
}
return fetch(link);
})
.then(response => response.json())
我要致电const result = fetch('link')
和result.then
取决于result
的结果。
但是对于某些ids
,原始的提取操作会返回错误,因此我正在做一些事情。
问题是我该如何在result
处停止下一个,以便如果错误返回,将不会发出额外的请求? (因为此请求只会导致错误)
答案 0 :(得分:0)
如果您可以在此时处理错误并且可以继续常规控制流程,请仅附加.catch
处理程序。在您的情况下,您显然无法做到,所以请不要尝试!删除.catch()
可以将其添加到链中某处的位置,因为它可以处理错误。
const result = fetch(`url`).then(/*...*).then(/*...*/);
const result2 = result.then(/*...*/);
// Somewhere were result gets used, i.e. when adding it to the UI:
result.then(console.log).catch(console.error);