방금 약속을 배우기 시작했습니다. 콘솔 결과가 [약속 중입니다.] [보류 중] 기능에서 오는 정확한 결과를 인쇄하고 싶습니다. 아무도 도와 줄 수 없습니다. 이.약속 결과에서 인쇄 결과를 인쇄하는 방법
exports.listProjectRepos1 = (req, res)=> {
let pID = mongoose.Types.ObjectId(req.params.projectId);
console.log("User Id is ", req.user._id);
let query = {
userID: mongoose.Types.ObjectId(req.user._id),
projectID: pID
};
RepositoriesSchema.find(query).lean().then((repos)=> {
return repos
}).then((repos)=> {
let roots = repos.map(exports.populateCodestack1);
console.log(roots);// trying to Print the Results here
});
};
exports.populateCodestack1 = function (repo) {
return new Promise((resolve, reject)=> {
Promise.all([new Promise((resolve, reject)=> {
let codeId = repo.codeStack;
CodeStacksSchema.findOne({ID: codeId}).lean().exec(function (err, codeStack) {
if (codeStack) {
repo.stack = codeStack.name;
resolve(repo)
}
});
}),
new Promise((resolve, reject)=> {
let owner = mongoose.Types.ObjectId(repo.SCMAccount);
console.log("Owner Id is", owner);
ScmaAccount.findOne({_id: owner}).lean().exec(function (err, scm) {
if (scm) {
repo.type = scm.type;
resolve(repo);
}
});
})
]).then(function (result1) {
// console.log("Refresh Result",result);
resolve(result1);
})
})
};
출력 기능을 인쇄하고 싶습니다.
피하기 ['Promise' 생성자 반 패턴 (http://stackoverflow.com/q/23803743/1048572?What-is-the-promise-construction-antipattern-and-how-to-avoid-it)! 단순히'promise.all (...)'을 돌려 주면 아무것도 포장하지 마십시오. 그리고 실수로 인해 약속을 거부하는 것을 잊지 마십시오. – Bergi