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也許抓住差異,並組成一個組合的訂單對象,但我再次不確定如何得到它的工作。
實現上述目標的最佳方法是什麼?