0
我正在使用BluebirdJS承诺库。将多个Bluebird承诺组合到单个承诺对象中
我有一个名为getOrder的方法,它基于承诺的形式返回基于PO编号的订单详细信息。
var poNumber = '12345';
return getOrder(poNumber).then(function (order) {
console.log(order.poNumber, order.items[0].sku);
return order;
});
但是我现在需要调用的循环这个方法,并结合有关订单的详细信息到一个单一的对象。
我所拥有的ATM是这样的:
var poNumbers = ['12345', '67890'];
return Promise.each(poNumbers, function (poNumber) {
return Promise.try(function() {
return getOrder(poNumber).then(function (order) {
console.log(order.poNumber, order.items[0].sku);
return order;
});
});
}).then(function (combinedOrder) {
console.log(combinedOrder);
});
但我不能确定如何每个订单的细节组合成一个单一的对象,并返回该对象的承诺呢?
该项目也使用lodash,我尝试使用_.difference也许抓住差异,并组成一个组合的订单对象,但我再次不确定如何得到它的工作。
实现上述目标的最佳方法是什么?