Javascript 我可以在一个for循环中使用wait吗?这个for循环存在于一个使用wait的函数块中?

Javascript 我可以在一个for循环中使用wait吗?这个for循环存在于一个使用wait的函数块中?,javascript,for-loop,async-await,Javascript,For Loop,Async Await,我在这里读了很多关于使用wait/async的问题,但现在我有了一个不同的案例。 我想在for循环中使用await,该循环存在于带有await关键字的函数中,但不知何故,使用await两次都不起作用: async import(){ await this.sp.getResults(queryParams) .then(data => { for(let i=0; i < data["results"].length; i++){

我在这里读了很多关于使用wait/async的问题,但现在我有了一个不同的案例。 我想在for循环中使用await,该循环存在于带有await关键字的函数中,但不知何故,使用await两次都不起作用:

async import(){
   await this.sp.getResults(queryParams)
     .then(data => {

       for(let i=0; i < data["results"].length; i++){
          this.setData(data["results"][i], this.data_to_import[i]); // how can I use await here
      }

    })
    .catch(
      error => console.log(error);
    )
}
异步导入(){
等待此.sp.getResults(queryParams)
。然后(数据=>{
for(设i=0;iconsole.log(错误);
)
}
我得到以下错误:

“await”表达式仅允许在异步函数中以及在模块的顶部>级别使用

如果有我的具体问题的答案,我很抱歉,如果你能分享链接,我将不胜感激,以便我可以查找它。
谢谢你的帮助

因为您的内部函数(
data=>…
)没有async关键字:

async import(){
   await this.sp.getResults(queryParams)
     .then(async data => {

       for(let i=0; i < data["results"].length; i++){
          await this.setData(data["results"][i], this.data_to_import[i]);
       }
    })
    .catch(
      error => console.log(error);
    )
}

谢谢你的回答!我会测试它!同意,但您编辑了一些内容,您还可以添加async关键字“.then(async data=>{”它正在工作。我必须再次查看async/await来理解这些概念。谢谢你的帮助!如果你想阅读async/await,我发现这篇文章很有帮助:@Cat谢谢你分享有用的文章。我会阅读它,我希望我能完全理解async/await!可能像:…
.then(async function(){data=>{loop)(waitiandset();}}})。catch()
。@Cat嘿,谢谢你的帮助。我意识到我必须再查一些东西。
async import(){
   try {
     const data = await this.sp.getResults(queryParams);

     for(let i=0; i < data.results.length; i++) {
       await this.setData(data.results[i], this.data_to_import[i]);
     }
   } catch(e) {
     console.error(e);
   }
}