Używać obietnicy all () do kosztownych obliczeń w javascript? [duplikować]
Nov 26 2020
Czy warto używać obietnicy all () w celu przyspieszenia kosztownych obliczeń? Na przykład:
// Kosztowne obliczenia
const data = [1, 2, 3];
const f = (x) => {
return x*x; // or a more complex formula
}
// Bez obietnic
const f_data = data.map(f);
// Z obietnicami
const f_data = Promise.all(data.map((e) => Promise((e) => f(e))).then(res => res).catch(...);
Czy będzie jakaś rzeczywista różnica w szybkości wykonywania?
Odpowiedzi
GuerricP Nov 26 2020 at 04:01
Nie, jeśli chcesz przyspieszyć obliczenia, musisz użyć robotników , aby wykorzystać wielowątkowość.
Jeśli używasz Promise.all
, wszystkie wywołania zwrotne zostaną umieszczone w kolejce i będą działać w jednym wątku, jeden po drugim.