我想迭代一些存储在数组中的页面URL,并检索它们以对其html文件执行操作.由于我需要 for each 页面存储所述操作的结果,以便在下次调用函数时使用它们,因此我希望在onResponse调用中传递索引(I),以便它可以将结果分配到数组中的适当位置.但是,此函数调用使用页面,而不是使用来自各个第i次迭代的i值.长度(i的最后一个值).我知道为什么会这样,但我不知道什么是好的解决方案.有什么帮助吗?

async function checkPages(){
const dateObj = new Date();
console.log(pages.length)
console.log(`Time: ${dateObj.toTimeString()}\n`);
for (var i = 0; i < pages.length; i++){
    axios.get(pages[i], { httpsAgent })
      .then(response => onResponse(response, i)
    )
      .catch(function (error) {
        onError(error)
      });
}

推荐答案

try 使用let而不是var

for (let i = 0; i < pages.length; i++) {

let为块范围,var为函数范围.

由于您正在调用async方法,因此使用var将完成for循环,并将最后一个值传递给回调.但使用let将保持在回调中块范围内分配的变量.

Herelet的定义,herevar.

Javascript相关问答推荐

如何使用Echart 5.5.0创建箱形图

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

窗口.getComputedStyle()在MutationObserver中不起作用

从PWA中的内部存储读取文件

类型脚本中只有字符串或数字键而不是符号键的对象

useNavigation更改URL,但不呈现或显示组件

我不知道为什么setwritten包装promise 不能像我预期的那样工作

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

将内容大小设置为剩余可用空间,但如果需要,可在div上显示滚动条

JQuery Click事件不适用于动态创建的按钮

如何限制显示在分页中的可见页面的数量

如何确保预订系统跨不同时区的日期时间处理一致?

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

在表单集中保存更改时删除';禁用';

Next.js无法从外部本地主机获取图像

自动滚动功能在当前图像左侧显示上一张图像的一部分

为什么我的Navbar.css没有显示在本地主机页面上?

如何在移动设备中使用JAVASSCRIPT移除点击时的焦点/悬停状态

MUI-TABLE:MUI表组件中交替行的不同 colored颜色 不起作用

调试jQuery代码以获取所有行的总和(票证类型)