Utilisez promise all () pour des calculs coûteux en javascript? [dupliquer]

Nov 26 2020

Y a-t-il un intérêt à utiliser promise all () pour accélérer un calcul coûteux? Par exemple:

// Calcul coûteux

const data = [1, 2, 3];

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

// Pas de promesses

const f_data = data.map(f);

// Avec des promesses

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

Y aura-t-il une différence réelle dans la vitesse d'exécution?

Réponses

GuerricP Nov 26 2020 at 04:01

Non, si vous voulez accélérer les calculs, vous devez utiliser des nœuds de calcul pour tirer parti du multithreading.

Si vous utilisez Promise.all, tous les rappels seront mis en file d'attente et s'exécuteront dans un seul thread, l'un après l'autre.