0
는 같은 다양한 종류의 점수를 유지 사전을 고려 할 수 있습니다 대해 forEach 내부에 약속 자바 스크립트에 빨려 루프 수행는
A.find({<key>:<value>})
.then(res=>{
//gets an array of the response <RES1>
})
배열의
이제 foreach는 요소는, 내가 마지막으로
B.find({_id : <RES1[i].some_id>})
.then(res=>{
//again a new array of responses <RES2>
})
같은 일을 오전 , 내가 점수를 수집 C에서 업데이트해야하는 유형을 얻고 난 다시 루프에서 쿼리 예 :
C.find({_id : RES2[i].some_key})....
내가 어디 잘못되었는지 모르겠다 !!! 아래 코드 포함
getScoreForEachTypes() {
User.find({ company: req.params.company })
.then(users => {
var responsesOfAllUsersArr = [];
usersForThisCompany = users;
users.forEach(user => {
responsesOfAllUsersArr.push(Response.find({ email: user.email }));
});
return Promise.all(responsesOfAllUsersArr);
})
.then(responsesOfAllUsersArr => {
var data = { _E: 0, _M: 0, _A: 0, _Q: 0, _E: 0 };
responsesOfAllUsersArr.forEach(el => {
el.forEach(_el => {
var j = getQuestionType(_el.questionId);
data[j] += _el.responseChoice;
})
})
});
}
function getQuestionType(qid) {
return Question.findOne({ _id: qid })
.then(el => {
return el.quesType;
})
.catch(err => {
console.log("err while fetching type of question", err);
});
}
어떻게'getScoreForEachTypes()'를 사용합니까? 이 함수에는 반환 값이 없습니다. –
나중에 내가 붙어있어, 그 반환 값이 더 필요합니다 .. 내가 {_E : 1, _M : 4, _A : 6, _Q : 3, _E 같이 뭔가있을 업데이트 된 데이터를 반환해야합니다 : 0} –
'User.find' 바로 전에'return'을 쓰면 어떨까요? – Zyigh