for循环甚至在响应之前就在异步/等待中继续

问题描述

下面是我的代码段,其中包含等待调用的异步调用

let reccData = [] 

for (const uniformId of uniformCollectionIds) {
     let watchCreatives = await CreativeCollection.findById(uniformId);

     if(watchCreatives.isActive){
             let recommendations = await ReccService.fetchReccSeries(watchCreatives.reccNo);
             if(recommendations){
                  reccData.push({reccNo:recommendations.reccNo,watchList:recommendations.watchListId,...})
             } 
     }
}

Logistics.insertMany(reccData).then(() => {
    //My other business logic goes here
 });

ReccService.ts

public fetchReccSeries = async (reccNo:number) => {
    let getRecc = await Recc.findByNumber(reccNo)
    if(getRecc){
      return getRecc 
    }
};

以上代码的问题是,甚至在我从await ReccService.fetchReccSeries得到响应之前,for..of都移到了下一个迭代。上面只是一个代码片段,我希望它以顺序方式执行的原因是,很多计数器/增量逻辑都基于此。

我尝试过的事情

一个.then({})的诺言确认,但是行为仍然相同。

await设置为for..of

for await (const uniformId of uniformCollectionIds) {

尝试Promise.All超出了我的范围

我期望的是:

直到每次迭代中的所有执行未完成,否则下一个迭代不应调用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)