Sobes.tech
Middle

Lehet-e a promise rejected állapotát a then belsejében kezelni? Mi a különbség a reject kezelésében a második then callback-ben és a catch-ben?

sobes.tech MI

Válasz az MI-től

Igen, a then belsejében kezelheti a elutasított állapotot úgy, hogy egy második callback-et ad át a then-nek:

promise.then(
  result => { /* sikeres eredmény kezelése */ },
  error => { /* hiba kezelése */ }
);

A különbség a reject kezelésében a then második callback-jében és a catch-ben:

  • A then második callback-je csak az eredeti ígéretben fellépő hibákat kezeli.
  • A catch elfogja mind az eredeti ígéretben, mind bármely korábbi then-ben fellépő hibákat, ha nem voltak kezelve.

Ezért a catch kényelmesebb a hibák központi kezeléséhez, míg a második callback a then-ben a konkrét ígéret helyi hibakezelésére szolgál.