ホームページ >ウェブフロントエンド >jsチュートリアル >MongoDB と Q Promises を使用したループで結果を返す前にデータベース クエリが確実に終了するようにするにはどうすればよいですか?
ループ内で行われたデータベース クエリから取得した結果を返す際の問題
このクエリの目標は、複数の MongoDB クエリを 1 つのループ内で作成することです。をループし、結合された結果を単一のデータ配列として送信します。ただし、ループ内で return を使用すると、データベース要求が完了するまで待機しないため、未定義の応答が返されます。 Q.moulde を使用しても問題は解決しません。
変更コード:
var getPrayerInCat = function(data){ var promises = data.map(function(data2){ var id = data2.id; return Q.nbind(Prayer.find, Prayer)({prayerCat:id}) .then(function(prayer) { if(!prayer) data2.prayersCount = 0; else data2.prayersCount = prayer.length; return data2; }) }); return Q.all(promises); }
説明:
以上がMongoDB と Q Promises を使用したループで結果を返す前にデータベース クエリが確実に終了するようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。