我有此代码:
fetch('endpoint_url')
.then(response => response.body)
.then((response) => {
const reader = response.getReader();
reader.read()
.then(({ done, value }) => {
if (done) {
console.log('DONE');
return;
}
// use value
})
.catch(() => {
console.log('Failed');
});
})
.catch(() => {
console.log('Failed');
});
一段时间后,我得到net::ERR_SPDY_PROTOCOL_ERROR 200
。
我进行了搜索,有人说这是某些杀毒软件的一个Chrome问题,但是我使用的是OSX,没有杀毒软件。
无论如何,我的问题是我想捕获错误并对此做出反应,但是console.log()
都无效。
关于我应该如何做的任何想法?
答案 0 :(得分:0)
要打印错误消息,首先需要捕获它。
代替
.catch(() => {
console.log('Failed');
});
做
.catch((e) => {
console.log('Failed: ' + e.message);
});
这将为您提供遇到错误的消息。
请注意:
任何给定的异常只会被最近的附件捕获一次 捕获块,除非重新抛出。当然,任何新的例外 在“内部”块中引发(因为catch块中的代码可能会 抛出的东西),将被“外部”块捕获。
答案 1 :(得分:0)
您没有看到错误,因为它发生在获取中。
尝试:
fetch('endpoint_url')
.then(response => response.body)
.catch(e => console.log(e))
但是我还是不相信您的代码的结构。在此处进行进一步分析: