W Angular, jaka jest różnica pojęciowa między funkcją błędu a funkcją catch dla obietnic?
W końcu udało mi się wyeliminować błąd obietnicy Angulara, ale było to dla mnie sprzeczne z intuicją. Spodziewałem się, że błędy zostaną obsłużone przez wywołanie awaryjne, ale zamiast tego musiałem użyć blokady.
Nie rozumiem pojęciowo, dlaczego wywołanie catch jest wykonywane zamiast wywołania zwrotnego niepowodzenia.
Czego się spodziewałem:
SomeAsyncService.getData().then(function (result) {
// The call is successful.
// Code in this block throws an error.
}, function (error) {
// I expected to handle errors here.
});
Co ostatecznie zadziałało.
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.
});
Jeśli istnieje bardziej odpowiedni sposób radzenia sobie z błędami obietnicowymi, daj mi znać.