async1.each(arr, function(arrayMember) {
orders.where('name', arrayMember).fetch({withRelated: ['allOrders']}).
then(function(dd2, callback) {
dd2 = dd2.toJSON();
var sendMemberOrder = {};
sendMemberOrder.name = dd2.name;
sendMemberOrder.lastOrder = dd2.allOrders.length;
res.send(sendMemberOrder);
});
}, function(err) {
if (err) {
console.log("err");
}
});
我正在尝试使用Express的res.send()功能,但鉴于我正在使用async.each,我正在使用
已发送标头
错误。
如何在发出请求时将每次迭代的结果作为数组传递?
答案 0 :(得分:1)
由于你已经在这里使用了promises,我想在这里使用async.js。您的代码无论如何都会被破坏,因为它根本不会调用回调,并且在错误的函数上声明了回调参数。相反,你可以试试这个:
app.get(your_route, function(req, res, next) {
// obtain arr
Promise.all(arr.map(function(arrayMember) {
return orders.where('name', arrayMember)
.fetch({withRelated: ['allOrders']})
.then(function(dd2) {
dd2 = dd2.toJSON();
return {
name: dd2.name,
lastOrder: dd2.allOrders.length
};
});
})).then(function(resultData) {
res.send(resultData);
}).catch(function(err) {
console.log(err);
next(err);
});
});