首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环之后同步运行Node js程序

在for循环之后同步运行Node js程序
EN

Stack Overflow用户
提问于 2018-06-14 12:20:17
回答 1查看 30关注 0票数 0

我想在执行完所有的console statement之后执行最后一个for loop,但是当控制进入else语句时,控制台语句executes immediately,请帮助我解决这个问题。

代码语言:javascript
复制
if (false) {
  //
} else {
  //pushing the scenarios object id from project table to scenarios array
  // function async(project) {    
  // Promise((resolve, reject) => {
  for (i = 0; i < projectToBeDeleted[0].scenarios.length; i++) {
    scenarios.push(projectToBeDeleted[0].scenarios[i])
  }
  //iterating the scenario table to get the child scenarios from all matching scenarios
  for (i = 0; i < scenarios.length; i++) {
    query = { "_id": scenarios[i] }
    Scenario.getScenarios(query)
      .then((scenariosResponse) => {
        for (j = 0; j < scenariosResponse[0].childScenario.length; j++) {
          scenarios.push(scenariosResponse[0].childScenario[j])
        }
      })
      .catch((error) => {
        res.status(400).send({
          message: error.stack
        })
      })
  }
  // })
  console.log("sync", scenarios)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 12:32:14

您可能需要使用Promise.all([]).then()

医生们

编辑:使用特定问题的示例

代码语言:javascript
复制
for (i = 0; i < projectToBeDeleted[0].scenarios.length; i++) {
  scenarios.push(projectToBeDeleted[0].scenarios[i]);
}

const promises = [];
for (i = 0; i < scenarios.length; i++) {
  const query = { "_id": scenarios[i] }
  const promise = Scenario.getScenarios(query)
    .then((scenariosResponse) => {
      for (j = 0; j < scenariosResponse[0].childScenario.length; j++) {
        scenarios.push(scenariosResponse[0].childScenario[j])
      }
    })
    .catch((error) => {
      res.status(400)
        .send({
          message: error.stack
        })
    })
  promises.push(promise);
}

Promise.all(promises).then(() => {
  console.log("sync", scenarios)
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50857421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档