【发布时间】:2015-07-29 15:34:11
【问题描述】:
我对 Node、KnexJS 和 Promise 非常陌生,我正在尝试构建一个简单的循环来查询项目,然后添加与它们关联的图片。
我查看了这个答案,虽然它教了一些东西,但我认为它不适用于我的情况:Knex Transaction with Promises
到目前为止,我有这个:
router.get('/', function(req, res, next) {
knex('parts').where(req.query)
.orderBy('date_updated', 'DESC')
.then(function(data){
for (var k in data) {
knex('photos')
.select()
.where('part_id', data[k].id)
.then(function(photos){
data[k].photos = photos;
});
}
return data;
})
.then(function(data){
res.render('parts/index', { title: 'Express', data: data, query: req.query });
});
});
这显然是错误的,但我只是不知道在这些情况下的方法。
【问题讨论】:
-
你好像在找
Promise.all -
Promise.all(并发)或Promise.each依您的喜好顺序排列。 -
@BenjaminGruenbaum 迭代器是顺序的,传递给每个 promise 的数组很可能是并发的:见评论 bluebirdjs.com/docs/api/promise.each.html#comment-2661321645