user_of_toster
@user_of_toster

Async\await — не совсем сахар?

(async () => {
  try {
    await a();
  } catch {
    console.log('catched');
  }
})();

await прекращает выполнение функции до тех пор, пока не зарезолвится a(). Вопрос - как эту "остановку" переписать на then\catch? Не затронув ничего, кроме await a();
  • Вопрос задан
  • 119 просмотров
Решения вопроса 2
bingo347
@bingo347 Куратор тега JavaScript
Ткнуть в доку лучше готового к копипасте ответа
async/await - это сахар, и даже не над промисами, а над методом then, который есть у промисов:
(async () => {
  const result = await {
    then(whenResolved, whenRejected) {
      console.log('awaited');
      whenResolved(5);
    }
  };
  console.log(result); // 5
})();

(async () => {
  try {
    await {
      then(whenResolved, whenRejected) {
        whenRejected(10);
      }
    };
  } catch(e) {
    console.log(e); // 10
  }
})();
Ответ написан
grabbee
@grabbee
await - ждать, ожидать. А вы на что рассчитываете?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
a()   // возвращает Promise
.then((result) => console.log(`после выполнения a(), результат ${result}`))
.catch((err) => console.log('catched', err));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
26 янв. 2021, в 14:48
900 руб./в час
26 янв. 2021, в 14:05
20000 руб./за проект