Use a promessa all () para cálculos caros em javascript? [duplicado]

Nov 26 2020

Existe alguma razão para usar a promessa all () para acelerar um cálculo caro? Por exemplo:

// Cálculo caro

const data = [1, 2, 3];

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

// Sem promessas

const f_data = data.map(f);

// Com promessas

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

Haverá alguma diferença real na velocidade de execução?

Respostas

GuerricP Nov 26 2020 at 04:01

Não, se você quiser acelerar os cálculos, terá que usar workers para alavancar o multithreading.

Se você usar Promise.all, todos os retornos de chamada serão enfileirados e executados em um único thread, um após o outro.