【发布时间】:2017-11-28 08:01:19
【问题描述】:
在 Express 中,我有一个项目数组,每个项目都包含一个存储为 Mongo ObjectIds 的工作会话数组。
我想遍历项目数组,并为每个项目从 MongoDB 获取其工作会话,然后将工作会话列表添加到一个对象,该对象最终将包含项目数组中所有项目的所有工作会话。
projectService.GetWorkSessions(result.user._id)
.then((projects) => {
console.log(projects) // nothing gets logged.
}
GetWorkSessions: (userId) => {
return getProjects(userId) // this is ok.
.then((projects) => {
let workSessions = {};
let counter = 0;
return promise = new Promise((resolve, reject) => {
return projects.forEach((project) => {
return getWorkSessions(project)
.then((sessionsList) => {
counter ++
workSessions[project._id] = sessionsList;
if(counter == projects.length) {
console.log('done')
promise.resolve();
}
})
})
})
})
},
workSession 对象被填充,但是一旦 forEach 完成,我如何将它返回给调用函数?
【问题讨论】:
-
promise = new Promise...promise.resolve()- 不... 这不是 Promise 的工作方式
标签: javascript express promise