У меня есть массив, содержащий массив обещаний, и каждый внутренний массив может иметь либо 4k, 2k, либо 500 обещаний.Выполнение серии обещаний в серии. После выполнения Promise.all перейдите к следующей партии
Всего существует около 60 тыс. Обещаний, и я могу проверить его на другие значения.
Теперь мне нужно выполнить Promise.all (BigArray [0]).
Как только первый внутренний массив будет выполнен, мне нужно выполнить следующий Promise.all (BigArray [1]) и т. Д. И т. Д.
Если я пытаюсь выполнить Promise.all (BigArray) его метание:
распределения фатальных call_and_retry_2 ошибки не удались - процесс из памяти мне нужно выполнить его каждый из обещаний в серии, а не параллельно, которые я Думаю, это то, что Узел делает. Я не должен использовать новые библиотеки, но я готов рассмотреть ответ !.
Edit:
Вот пример кусок кода:
function getInfoForEveryInnerArgument(InnerArray) {
const CPTPromises = _.map(InnerArray, (argument) => getDBInfo(argument));
return Promise.all(CPTPromises)
.then((results) => {
return doSomethingWithResults(results);
});
}
function mainFunction() {
BigArray = [[argument1, argument2, argument3, argument4], [argument5, argument6, argument7, argument8], ....];
//the summ of all arguments is over 60k...
const promiseArrayCombination = _.map(BigArray, (InnerArray, key) => getInfoForEveryInnerArgument(InnerArray));
Promise.all(promiseArrayCombination).then((fullResults) => {
console.log(fullResults);
return fullResults;
})
}
Вы тот же пользователь, который разместил этот предыдущий вопрос, который содержит какой-то соответствующий контекст: [Выполнить Promise.all в серии] (http://stackoverflow.com/questions/37196699/execute-promise-all-in-series/37196780# comment61956748_37196780)? – jfriend00
Вы в порядке, когда все операции 60k выполняются параллельно, но вы просто хотите обрабатывать результаты поочередно (по одному подматрицу за раз)? Или вам действительно нужны операции, которые каждый вспомогательный массив представляет для серийного запуска и обработки? Последнее было бы намного безопаснее с точки зрения памяти и ресурсов в node.js. – jfriend00
Да, я. Мне нужно, чтобы они бежали последовательно. все в порядке, только параллельные обещания innerArray работают параллельно. Как только innerArray 1 будет выполнен, переходите к следующим обещаниям 500-4k на innerArray 2 и запускайте их параллельно, после того, как обещания innnerArray 500-4k завершаются, перейдите к innerArray 3 и сделайте эти 500-4k, как только будет выполнено внутреннее перемещение 3 на innerArray 4 и делать эти 500-4k ... и т. д. – user1554966