Javascript 在嵌套for循环中进行提取调用

Javascript 在嵌套for循环中进行提取调用,javascript,node.js,asynchronous,lambda,Javascript,Node.js,Asynchronous,Lambda,我目前正在将我的局部函数转换为lambda函数,并且遇到了一些困难。在前面的一个方法中,我得到一个url片段数组,我必须通过编程将其串到前缀以返回数据 从逻辑上讲,我认为最好的方法是执行嵌套for循环。浏览添加url片段并执行fetch调用的一系列前缀 它在本地运行良好,但lambda会抛出错误 function getVariantData(data, cb) { for (var i = 0; i < chapters.length; i++) { let source =

我目前正在将我的局部函数转换为lambda函数,并且遇到了一些困难。在前面的一个方法中,我得到一个url片段数组,我必须通过编程将其串到前缀以返回数据

从逻辑上讲,我认为最好的方法是执行嵌套for循环。浏览添加url片段并执行fetch调用的一系列前缀

它在本地运行良好,但lambda会抛出错误

function getVariantData(data, cb) {
  for (var i = 0; i < chapters.length; i++) {
    let source = chapters[i];
// chapters = url prefix
    data.forEach(async element => {
      let res = await fetch(chapters[i] + element);
//element = url fragment
      let body = await res.text();
      createVariantsFile(element, source, body, cb);
    });
  }
}
函数getVariantData(数据,cb){ 对于(var i=0;i{ let res=等待取数(第[i]章+元素); //元素=url片段 let body=wait res.text(); createVariantsFile(元素、源、主体、cb); }); } } 这段代码运行得很好,但我了解到lambdas对forEach和async/awaits的要求有点严格,因此我将代码改为这段代码,并处理了一大堆问题。我还没有通过编写console.log,因为我还没有通过这个错误

async function getVariantData(data, cb) {
  for (var i = 0; i < chapters.length; i++) {
    let source = chapters[i];
    const promises = data.map((datum, index) => fetch(source+datum))
    const chapterData = await Promise.all(promises)
    console.log(chapterData)
    // await data.map(async element => {
    //   return await (chapters[i] + element);
    //  createVariantsFile(element, source, body, cb);
    // });
  }
}
异步函数getVariantData(数据,cb){ 对于(var i=0;ifetch(源+数据)) const chapterData=等待承诺。全部(承诺) console.log(chapterData) //等待data.map(异步元素=>{ //返回等待(第[i]章+元素); //createVariantsFile(元素、源、主体、cb); // }); } }
如果您不在两个版本之间更改变量名,例如
元素->数据,问题会更容易理解。第一个版本使用
.text()
,第二个版本不是。第二个版本抛出了什么错误?啊,很抱歉,我重新编辑了变量名,因为我尝试了新函数来绕过它。第二个版本抛出了一个超时错误:{“errorMessage”:“2020-03-09T19:31:13.454Z f601e3b9-2a19-459d-a7a6-58000fd6e72a任务在3.00秒后超时”}您可能一次向同一台服务器发送了太多AJAX请求。并发请求的数量是有限制的,所以其余的请求都在排队,然后你会得到一个超时。