Problem bei der Rückgabe abgerufener Ergebnisse aus Datenbankabfragen, die in einer Schleife erstellt wurden
Bei dieser Abfrage besteht das Ziel darin, mehrere MongoDB-Abfragen in einer Schleife durchzuführen Schleifen Sie die kombinierten Ergebnisse als einzelnes Datenarray ab und senden Sie sie. Die Verwendung von „return“ innerhalb der Schleife wartet jedoch nicht auf den Abschluss der Datenbankanforderungen, was zu einer undefinierten Antwort führt. Auch der Einsatz von Q.moulde löst das Problem nicht.
Geänderter Code:
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); }
Erklärung:
Das obige ist der detaillierte Inhalt vonWie kann mit MongoDB- und Q-Versprechen sichergestellt werden, dass Datenbankabfragen abgeschlossen werden, bevor Ergebnisse in einer Schleife zurückgegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!