1.2Kпросмотров
14.8%от подписчиков
23 марта 2026 г.
📷 ФотоScore: 1.3K
Последовательные async-операции без лишней вложенности! Когда несколько асинхронных действий зависят друг от друга, часто пишут вложенные .then():
fetch('/data').then(r => { r.json().then(data => { fetch(/more/${data.id}).then(r2 => { r2.json().then(console.log); }); });
}); Такой код быстро превращается в избыточную вложенность обработчиков. Решение — возвращать следующий Promise из .then():
fetch('/data') .then(r => r.json()) .then(data => fetch(/more/${data.id})) Каждый .then() получает результат предыдущего и передаёт дальше по цепочке, потому что возвращает Promise:
.then(r => r.json())
.then(console.log) Ошибки ловятся централизованно в .catch(), если они произошли в цепочке или внутри .then():
.catch(console.error); Важно: fetch не кидает ошибку на HTTP 4xx/5xx — в реальном коде проверяйте r.ok. 🔥 Такой паттерн делает асинхронный код линейным, убирает лишнюю вложенность и упрощает поддержку. 📣 JS Ready | #совет