【发布时间】:2018-11-24 05:27:35
【问题描述】:
我想在所有for loop执行之后执行最后一个console statement,但是当控制进入else语句时,控制台语句executes immediately,请帮我解决这个问题
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)
}
【问题讨论】:
-
你可以使用
async.eachSeries()ofasynclibrary。 -
@AnkitAgarwal 有没有其他方法可以在不使用任何库的情况下完成这项工作?
标签: javascript node.js asynchronous promise synchronization