Middle
Wat is het verschil tussen het afhandelen van reject in het tweede argument van .then() en in een aparte .catch()? Waarom .catch() gebruiken als reject direct in .then() kan worden afgehandeld?
sobes.tech AI
Antwoord van AI
Разница между обработкой reject во втором аргументе .then() и в отдельном .catch() заключается в поведении цепочки промисов и удобстве обработки ошибок.
- Обработка reject во втором аргументе
.then(onFulfilled, onRejected)ловит ошибку только для этого конкретного промиса. .catch(onRejected)ловит все ошибки, которые произошли в предыдущих промисах цепочки, то есть это более универсальный и удобный способ централизованной обработки ошибок.
Использование .catch() позволяет писать код, где все ошибки обрабатываются в одном месте, что улучшает читаемость и поддержку кода.
Пример:
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Ошибка:', error));
Если использовать второй аргумент .then(), то ошибки, возникшие в последующих .then(), не будут пойманы, что может привести к необработанным исключениям.