【发布时间】:2019-06-27 18:51:16
【问题描述】:
我有一个带有 url 的数组,我必须遍历它才能下载 HTML 文件。如果一个 url 没有加载,例如由于连接问题,它的 HTML 文件将不会被下载,因为循环进入下一个迭代的问题。我的目标是,如果发生错误,程序应该重复当前迭代 3 次,然后进入下一个迭代。
这是我想要实现的目标:
let filteredUrls = [ 'url1', 'url2', 'url3'];
for (let id in filteredUrls) {
let currentUrl = filteredUrls[id];
try {
//open currentUrl, do some stuff...
} catch (error) {
//if there's an error, repeat the current loop 3 times,
//after that, move to the next iteration
}
}
我该怎么做?有什么办法吗?
【问题讨论】:
-
从 http 请求中获取响应是异步的。您必须展示如何打开网址并使用响应“做一些事情”。
-
For ... In 可用于数组,但要小心,强烈建议不要使用它(developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…)
-
@trincot 我用 puppeteer 的虚拟浏览器打开 url,是的,整个程序是异步的。
标签: javascript arrays loops for-loop