Maison > Article > interface Web > Comment garantir que les requêtes de base de données se terminent avant de renvoyer les résultats en boucle avec MongoDB et Q Promises ?
Problème lors du renvoi des résultats récupérés à partir de requêtes de base de données effectuées dans une boucle
Dans cette requête, l'objectif est d'effectuer plusieurs requêtes MongoDB dans un bouclez et envoyez les résultats combinés sous la forme d’un seul tableau de données. Cependant, l'utilisation de return dans la boucle n'attend pas la fin des requêtes de la base de données, ce qui entraîne une réponse indéfinie. Même l'utilisation de Q.moulde ne résout pas le problème.
Code modifié :
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); }
Explication :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!