Może ktoś wytłumaczyć jak dokładnie działa catch
. Powiedzmy, że mamy taki kod:
const url = "example API endpoint"
fetch(url)
.then((res) => { // --> console.log po throw nie zostanie wywołany
throw "Error occured";
console.log(res);
res.json()
})
.then((user) => {
console.log("json object")) // --> callback nie zostaje wywołany
}
.catch((err) => console.log(err))
Skoro druga metoda .then(user=>{})
nie zostaje wywołana ponieważ w poprzedniej metodzie łańcucha wyrzuciło wyjątek throw
, to jak wiadomość z throw
pomija kolejne .then
i wywołuje .catch
na końcu łańcucha wywołań? W końcu .catch
jest zwracane z drugiego .then
który nie został nawet wywołany.