Тихий сбой платежа из-за неперехваченного исключения. Висящий индикатор загрузки после сетевого сбоя. Поломанная бизнес-логика из-за частично выполненной цепочки промисов. Неадекватная обработка асинхронных ошибок — бич современных веб-приложений, порождающий самые коварные баги. Когда 89% вызовов API в типичных SPA-приложениях обрабатывают ошибки неправильно или неполно, проблема требует системного решения.
Рассмотрим типичный антипаттерн:
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
return process(data);
}
// Где-то в коде:
fetchData().then(updateUI);
Беглый взгляд не обнаруживает явных проблем, но эта реализация содержит три фатальных упущения:
...