Понимание параллельности промисов в Node.JS

Правильно ли я понимаю, что эти две функции эквивалентны друг другу по времени выполнения (при прочих равных):

const func = async () => {
  try {
    const some = await promiseFunc();

    console.log(some);
  } catch (err) {
    console.error(err);
  }
};

и

const func = () => {
  promiseFunc()
    .then((some) => {
      console.log(some);
    })
    .catch((err) => {
      console.error(err);
    });
};

И правильно ли я понимаю, что эта функция будет работать быстрее:

const func = async () => {
  try {
    const someOne = promiseFuncOne();
    const someTwo = promiseFuncTwo();
    const someThree = promiseFuncThree();

    const parallel = await Promise.all([someOne, someTwo, someThree]);

    console.log(parallel[0], parallel[1], parallel[2]);
  } catch (err) {
    console.error(err);
  }
};

чем эта:

const func = async () => {
  try {
    const someOne = await promiseFuncOne();
    const someTwo = await promiseFuncTwo();
    const someThree = await promiseFuncThree();

    console.log(someOne, someTwo, someThree);
  } catch (err) {
    console.error(err);
  }
};

за счет того, что в первой функции все три промиса будут выполняться параллельно и конечное время выполнения будет равно времени выполнения самого медленного промиса. Вторая же функция будет работать дольше, потому, что при каждом await функция будет ждать окончания выполнения промиса.

Все ли я правильно понимаю или где-то напутал?


Ответы (0 шт):