Как заставить функцию дождаться выполнения промиса?

В JavaScript есть несколько способов заставить функцию дождаться выполнения промиса. Рассмотрим наиболее распространенные подходы.

1. Использование async/await: Это синтаксический сахар, который позволяет написать асинхронный код так, как будто он синхронный. Необходимо объявить функцию как асинхронную с помощью ключевого слова async, а затем использовать ключевое слово await, чтобы ожидать выполнения промиса.

async function wait() {
  const result = await myPromise();
  console.log(result);
}

wait();

2. Использование метода then(): Промисы в JavaScript предоставляют метод then(), который вызывается при успешном выполнении промиса. Вы можете вызвать метод then() внутри функции и выполнить требуемые действия после успешного выполнения промиса.

function wait() {
  myPromise().then(result => {
    console.log(result);
  });
}

wait();

3. Использование callback-функций: Промисы также могут быть выполнены с использованием callback-функций. Вместо использования then(), вы можете передать функцию обратного вызова в метод then() и выполнить требуемые действия в этой функции.

function wait() {
  myPromise().then(function(result) {
    console.log(result);
  });
}

wait();

4. Использование Promise.all: Если у вас есть несколько промисов, которые должны быть выполнены перед продолжением выполнения функции, вы можете использовать метод Promise.all(). Этот метод принимает массив промисов и возвращает новый промис, который выполнится только после выполнения всех промисов в массиве.

async function wait() {
  const results = await Promise.all([myPromise1(), myPromise2()]);
  console.log(results);
}

wait();

Каждый из этих подходов имеет свои преимущества и может быть выбран в зависимости от конкретных требований и предпочтений разработчика.