从循环中进行的数据库查询返回检索结果的问题
在此查询中,目标是在一个循环中进行多个 MongoDB 查询循环并将组合结果作为单个数据数组发送。但是,在循环内使用 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 Promise 循环返回结果之前完成?的详细内容。更多信息请关注PHP中文网其他相关文章!