Promise.all
разрешится только после разрешения всех обещаний в его массиве. Потому что ваши два Обещания имеют .then
с:
.then(x => result1 = x);
.then(x => result2 = x);
Promise.all
разрешится после выполнения обеих этих функций. Так что да, и result1
, и result2
гарантированно будут определены (или, по крайней мере, назначены) при выполнении обратного вызова Promise.all
.
Тем не менее, вместо присвоения внешним переменным, может иметь смысл определить переменные с помощью const
, в то время как await
в Promise.all
:
const [result1, result2] = await Promise.all([getSomeValueAsync(), getSomeValueAsync()]);