В Angular, какова концептуальная разница между ошибками и функциями catch для обещаний?
В конце концов я обработал ошибку углового обещания, но это было нелогично для меня. Я ожидал, что ошибки будут обработаны обратным вызовом сбоя, но вместо этого мне пришлось использовать перехват.
Я не совсем понимаю концептуально, почему выполняется ловушка, а не обратный вызов сбоя.
Что я ожидал:
SomeAsyncService.getData().then(function (result) {
// The call is successful.
// Code in this block throws an error.
}, function (error) {
// I expected to handle errors here.
});
Что в итоге сработало.
SomeAsyncService.getData().then(function (result) {
// The call is successful.
// Code in this block throws an error.
}).catch(function (error) {
// Where the error is actually caught.
});
Если есть более подходящий способ обработки ошибок обещания, дайте мне знать.