Вопрос проверяет понимание цепочек промисов и правильной обработки асинхронных операций, чтобы избежать callback hell и улучшить читаемость кода.
Когда промис создается внутри колбэка другого промиса, код становится вложенным и трудночитаемым. Это явление называют callback hell. Обработка ошибок в такой структуре усложняется, так как каждый уровень требует собственного try/catch или reject.
Вместо того чтобы вызывать следующий асинхронный шаг внутри колбэка, вы возвращаете новый промис из .then(). Это позволяет выстроить плоскую цепочку вызовов. Например:
// Плохо: вложенные колбэки
fetchData()
.then(data => {
processData(data)
.then(result => {
console.log(result);
});
});
// Хорошо: возврат промиса
fetchData()
.then(data => processData(data))
.then(result => console.log(result))
.catch(error => console.error(error));Вынос промисов за пределы колбэков — это стандартная практика для написания чистого асинхронного кода. Она обязательна при работе с цепочками зависимых запросов, например, при последовательной загрузке данных из API.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию