you_are_enot
@you_are_enot
Пограммист любитель

Как организовать структуру промисов в асинхронным коде?

У меня есть набор асинхронных функций, которые должны выполняться друг за другом. В случае если одна возвращает catch, вся цепочка прерывается. Это легко сделать используя цепочку промисов
.then().then().then().catch()
Но для меня важно чтобы каждая функция имела свой catch и оставливала выполнение цепочки в случае ошибки

Единственный вариант, который приходит в голову
func.then(() => {
func2.then(() => {
func3.then(....).catch ()}).catch ()}).catch()
Такой вариант не сильно нравится, т.к. он является воплощением callback hell-а, который промисы должны решать
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
kshshe
@kshshe
Frontend developer
Асинхронные функции.

Вместо
something().then(() => {
    something2().then(() => {

    })
})

Пишете (внутри асинхронной функции)
await something();
await something2();

await работает с промисами и любыми thenable объектами (теми, у которых есть метод then).

И все это можно обернуть в try ... catch
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы