Есть способ перебрать массив идентификаторов в кусках и дождаться ответа этого куска, чтобы продолжить цикл?Bluebird - Как перемещаться по массиву в кусках, ожидая ответа куска
например:
Promise = require("bluebird")
function(array){
return Promise.*something that will loop chunks from my array and wait for each chunk response*.map(function(id){
return myfunction(id);
});
}
Моя проблема заключается в том, что мне нужно ждать ответа от БД, что я обращающегося, и он не может ответить на все вызовы, которые я создаю в то же время. Мой код поднимает исключение тайм-аута, потому что я слишком агрессивен.
мой код ниже:
Promise = require("bluebird")
function(array){
return Promise.map(array, function(id){
return myfunction(id);
});
}
EDIT: Я нашел решение!
Promise = require("bluebird")
function(array){
return Promise.map(array, function(id){
return myfunction(id);
}, {concurrency: 10});
}
Да, мне нужно, чтобы это было обещание. Что такое порты с обещаниями bluebird? –
Они взяли async lib с интеграцией обещаний bluebird. Я нашел [это] (https://www.npmjs.com/package/async-bluebird), но он кажется довольно непроверенным, поэтому я не хотел его рекомендовать. Но это может быть хорошо! Вы должны проверить [npmjs] (https://www.npmjs.com/search?q=async) и посмотреть, есть ли какой-либо пакет, который вам подходит. – William
Спасибо, Уильям! Я нашел лучшее решение, посмотри мое редактирование :) –