Execute lote de promessas em série. Depois que Promise.all estiver pronto, vá para o próximo lote

Eu tenho uma matriz que contém uma matriz de promessas, e cada matriz interna pode ter 4k, 2k ou 500 promessas.

No total, existem cerca de 60 mil promessas e posso testá-lo com outros valores também.

Agora eu preciso executar oPromise.all(BigArray[0]).

Depois que a primeira matriz interna estiver concluída, preciso executar a próximaPromise.all(BigArray[1]) e assim por diante.

Se eu tentar executar umPromise.all(BigArray) está jogando:

fatal error call_and_retry_2 allocation failed - process out of memory

Preciso executar cada uma das promessas em série, não em paralelo, o que acho que é isso que o Node está fazendo. Eu não deveria usar novas bibliotecas, no entanto, estou disposto a considerar a resposta!

Editar:

Aqui está um exemplo de código:

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;
    })
}

questionAnswers(4)

yourAnswerToTheQuestion