Да хоть той же обработкой ошибок.
Експешены в асинке лучше не использовать, ибо с ловлей оных проблемы.
Нужна мешанина из коллбеков.
Код не линейный. Синхронный в этом плане проще. В том числе для понимания.
Так ти просто замість того, щоб огортати блок в трай кеч, пишеш колбек, який повторює блок кеч. В чому складність?