В 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. 
});

Если есть более подходящий способ обработки ошибок обещания, дайте мне знать.

Ответы на вопрос(3)

Ваш ответ на вопрос