Execute Reihe von Versprechungen in Serie. Sobald Promise.all fertig ist, gehe zum nächsten Stapel

Ich habe ein Array, das eine Reihe von Versprechungen enthält, und jedes innere Array kann entweder 4k, 2k oder 500 Versprechungen enthalten.

nsgesamt gibt es rund 60.000 Versprechen und ich kann es auch mit anderen Werten teste

Nun muss ich das @ ausführPromise.all(BigArray[0]).

obald das erste innere Array fertig ist, muss ich das nächste @ ausführPromise.all(BigArray[1]) und so weiter und so fort.

Wenn ich versuche, ein @ auszuführPromise.all(BigArray) es wirft:

fatal error call_and_retry_2 allocation failed - process out of memory

Ich muss jedes Versprechen nacheinander ausführen, nicht parallel. Ich denke, das ist, was Node tut. Ich sollte keine neuen Bibliotheken verwenden, bin aber bereit, die Antwort zu erwäge

Bearbeiten

Hier ist ein Beispiel für einen Code:

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

Antworten auf die Frage(8)

Ihre Antwort auf die Frage