【发布时间】:2021-11-23 21:27:28
【问题描述】:
我正在尝试使用 fetch 和 promise all 从网站上抓取新闻文章。在此处找到示例
这是我正在使用的代码。
var openArticles = function(urlArray){
Promise.all(urlArray.map(u=>fetch(u))).then(responses =>
Promise.all(responses.map(res => res.text()))
).then(function(html){
console.log(html[0])
})
};
我对箭头函数表达式不太熟悉,并且很难为 500 和超时错误添加错误处理。我尝试将代码放在 try catch 块中,但这没有帮助,我不确定在哪里或如何输入 if 语句来检查响应状态。有没有办法使用标准函数 name() 格式重写它?
【问题讨论】:
-
这能回答你的问题吗? How do I handle errors with promises?
-
说实话 - 不 - 不是很有帮助。
-
只需在
.then()之后添加.catch(() => {/* code here */});... -
这是我尝试的第一件事。我测试了两个 then 语句,以及在 fetch 之后。这些都没有发现错误。
-
对不起;
fetch(MDN) - “fetch()承诺不会拒绝 HTTP 错误(404等)。相反,then() handler must check theResponse.ok` 和/或Response.status属性。”
标签: javascript promise fetch