0
私は現在、Sequelize(MySQL)でNode.jsを使用しており、それらの間に関連性を持つ2つのモデル、M.belongsTo(C)
を持っています。私がしようとしているのは、すべてのCを照会し、Cに属するすべてのMを返されたJSONオブジェクトに追加することです。続行のクエリを待つ
C.findAll({
where: {
parent_ids: ids
}
}).then(cs => {
let fCs = [];
for (let j = 0; j < cs.length; j++) {
let c = cs[j].get({ plain: true });
M.findAll({
where: {
CId: c._id
}
}).then(ms => {
let cMs = [];
for (let k = 0; k < ms.length; k++) {
cMs.push(ms[k].get({ plain: true }));
}
c.ms = cMs;
});
fCs.push(c);
}
return res.json({
success: true,
cs: fCs
});
}).catch(error => {
return res.json({
success: false
});
});
問題がM
モデルの内側のクエリは非同期問い合わせが行われると、私は任意のクエリが実行される前に応答を得ることである:それは私の最新の試みを表して下のコードを参照してください。私もPromise.all()
を使ってみましたが、外側のC
クエリで繰り返しているので正しく動作させることができませんでした。
どうすれば正常に動作させることができますか?
ありがとうございました!私の間違いは、 'Promise.all()'を間違った方法で使用しようとしていたことでした。 – Minoru