【问题标题】:Potential infinite loop: exceeded 10001 iterations潜在的无限循环:超过 10001 次迭代
【发布时间】:2020-11-04 13:05:47
【问题描述】:

我在sandbox 有一个项目块,我使用cherrio, https://cors-anywhere.herokuapp.com/, axios 和手动构建的功能来检查分页,导航到下一页并抓取数据,最后将抓取的数据推送到对象数组中。

代码有些工作,但在将对象推送到数组时卡在了无限循环中。

代码成功抓取并推送第一页的数据,但从分页开始在其他页面上陷入无限循环。另外,如果给出没有分页的url,代码确实会进入无限循环。

谁能帮我解决我的错误,我已经尝试解决这个错误大约一周了。

输入Teacher 表示无分页网址,输入manager 表示分页网址。

要查看的文件:src/store/modules/Site.js

要查看的文件:src/store/modules/Helpers.js

【问题讨论】:

  • 理解您的问题所必需的代码必须粘贴到问题本身并进行适当的格式化。只有外部链接是不够的。这是因为外部链接往往会随着时间的推移而中断或更改,从而使问题无法作为对他人的长期参考。它还扰乱了搜索,使移动设备上的人更难参与。请将相关代码放入您的问题中。

标签: javascript node.js vue.js vuejs2 vuex


【解决方案1】:

该错误似乎在makeObject() 中,如下所示:

const makeObject = (jobs, img, org) => {
  let mjobs = [];
  for (let i = 0; i < jobs.length; i++) {
    jobs.push({        // FIXME: Pushing into `jobs` which is being iterated
      title: jobs[i],
      img: "https://merojob.com" + img[i],
      org: org[i]
    });
  }
  return mjobs;
}

for-循环迭代jobs,同时将新对象推入其中。终止条件检查i 是否小于jobs.length,在每次迭代中递增,因此它永远不会退出循环。

我认为你的意思是在for-loop 中推入mjobs

【讨论】:

  • 谢谢,我没有注意到这是一个愚蠢的拼写错误。非常感谢伙计。
  • forState= makeObject(jobTitles, imgs, orgsNames, locations); 的数组数据在每次迭代中都会被覆盖。有什么办法可以克服吗?如果有多个页面之前推送的数据被当前页面的数据替换。
猜你喜欢
  • 2014-10-31
  • 2023-03-20
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
相关资源
最近更新 更多