0
は ような様々なタイプのスコアを維持する辞書を、検討することができforEachの内部約束するJavaScriptでスタックループ実行、は
A.find({<key>:<value>})
.then(res=>{
//gets an array of the response <RES1>
})
配列で今foreach要素、私は最終的に、私はスコアが収集Cに更新する必要があると私は再びループで問い合わせるれている型を取得
B.find({_id : <RES1[i].some_id>})
.then(res=>{
//again a new array of responses <RES2>
})
などをやっています
のように
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()'を使用しますか?その関数には戻り値がありません。 –
ya、私はスタックされている、私はさらに使用する戻り値が必要です。私は{_E:1、_M:4、_A:6、_Q:3、_Eのようなものになる更新されたデータを返す必要があります: 0} –
'User.find'の直前に' return'を書くとどうなりますか? – Zyigh