我有兩個相同長度的迭代,我需要同時循環。一個迭代是自定義對象的Map,另一個是對象的數組。我需要將數組的內容添加到Map中(通過一些輔助函數原型函數),最好是異步併發的。而且,這兩個容器根據它們的順序相互關聯。因此,數組中的第一個元素需要添加到Map中的第一個元素。同時迭代兩個相同長度的迭代
如果我是這樣做同步,將是這個樣子:
var map;
var arr;
for (var i = 0; i < arr.length; i++) {
// get our custom object, call its prototype helper function with the values
// in the array.
let customObj = map[i];
customObj.setValues(arr[i])
}
通常遍歷數組異步並同時我用藍鳥Promise.map
。這將是這個樣子:
var arr
Promise.map(arr, (elem) => {
// do whatever I need to do with that element of the array
callAFunction(elem)
})
這將是真棒,如果我可以做這樣的事情:
var map;
var arr;
Promise.map(map, arr, (mapElem, arrElem) {
let customObj = mapElem[1];
customObj.setValue(arrElem);
})
有誰知道圖書館或一個聰明的方式來幫助我做到這一點的?
謝謝。
編輯:只是想添加一些關於存儲在地圖中的對象的澄清。地圖以唯一值爲鍵值,並且值與構成此對象的唯一值相關聯。它的定義與此類似:
module.exports = CustomObject;
function CustomObject(options) {
// Initialize CustomObjects variables...
}
CustomObject.prototype.setValue(obj) {
// Logic for adding values to object...
}
這是完美的!在Promise.map文檔中忽略了這一點。萬分感謝! –