Versprechen all () für teure Berechnungen in Javascript verwenden? [Duplikat]

Nov 26 2020

Gibt es einen Grund, Versprechen all () zu verwenden, um eine teure Berechnung zu beschleunigen? Zum Beispiel:

// Teure Berechnung

const data = [1, 2, 3];

const f = (x) => {
  return x*x; // or a more complex formula
}

// Keine Zusagen

const f_data = data.map(f);

// Mit Versprechungen

const f_data = Promise.all(data.map((e) => Promise((e) => f(e))).then(res => res).catch(...);

Wird es einen tatsächlichen Unterschied in der Ausführungsgeschwindigkeit geben?

Antworten

GuerricP Nov 26 2020 at 04:01

Nein, wenn Sie Berechnungen beschleunigen möchten, müssen Sie Mitarbeiter einsetzen , um Multithreading zu nutzen.

Wenn Sie verwenden Promise.all, werden alle Rückrufe in die Warteschlange gestellt und nacheinander in einem einzigen Thread ausgeführt.