javascript - 如何在 for 循环中对具有精确索引的元素重复迭代?

标签 javascript arrays loops for-loop

我有一个包含 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
    }
}

我该怎么做?有办法吗?

最佳答案

如果您的下载代码是异步的,那么您可能希望使用递归函数,而不是仅仅再次重复循环。

let filteredUrls = [ 'url1', 'url2', 'url3'];
for (let id in filteredUrls) {
  let currentUrl = filteredUrls[id];
  downloadFile( currentUrl, 0 );
}

function downloadFile( url, tryCount ) {
  try {
    //open currentUrl, do some stuff...
  } catch (error) {
    tryCount++;
    if ( tryCount < 3 ) {
      downloadFile( url, tryCount );
    }
  }
}

关于javascript - 如何在 for 循环中对具有精确索引的元素重复迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56797137/

相关文章:

MySQL条件过滤json数组中的元素

php - 如何获取多个选择列表的值和 id 并将其传递给 AJAX?

循环内的 JavaScript 闭包——简单实用的示例

当用户输入句点时停止的 Java 计算器程序

javascript - 用户向下滚动时加载内容

javascript - 我可以使用 document.createElement 即时创建一系列 DIV 吗?

arrays - Hive JSON数据 explode 选项不 explode 数组

java - 使用循环和数组在 Java 中生成随机数列表

javascript - 尝试使用 html/javascript 显示打印字形列表

javascript - 如何将 id 的动态值传递给我从 json 获取的 jquery?