我正在使用承諾訪問我的數據庫(elasticsearchjs,它使用Bluebird)。保存更改變量的承諾
對於我列表中的每個ID,我正在開始一個新的查詢。現在我想知道查詢失敗時元素的ID。
var idList = ['id1', 'id2', 'id3', '...'];
var promises = [];
for (var i = 0; i < size; i++) {
// dbQueryFunction returns a promise object
promises.push(dbQueryFunction(idList[i])
.then(function(data) {
// Do stuff...
})
.error(function(errorMessage) {
console.log('[ERROR] id: ' + id); //<== Print ID here
})
);
}
// Wait for all promises to be resolved
Promise.all(promises)
.then(function() {
console.log('Everything is done!');
});
如何在我的承諾中保存更多信息?我嘗試使用Promise.bind()
,但無法正常工作。
編輯:
爲了闡明關於「大小」的變量:這是一個代碼段,其中我想要的第一n個元素的結果。所以大小等於或小於我的數組大小。
什麼是你拒絕承諾(也就是說,是什麼導致他們錯誤)? –
是你試圖做任何機會重試? –
@BenjaminGruenbaum:我得到一個vew條目超時錯誤。我想知道發生超時錯誤的條目以進一步調查此問題。 – fwind