JavaScript · Middle · Pytanie 52 z 75
Dlaczego ten catch nie obsługuje odrzucenia?
async function load() {
try {
return fetchUser(); // returns a rejected promise
} catch (e) {
return null;
}
}- ✓Poprawna odpowiedź: Promise jest zwracany bez
await, więc odrzuca się już po wyjściu ztry; użyjreturn await fetchUser() - 2
try/catchnigdy nie działa w funkcjach async - 3
catchdziała tylko razem z blokiemfinally
Wyjaśnienie
Wewnątrz try konstrukcja return await czeka na rozstrzygnięcie, więc odrzucenie jest rzucane w bloku. Poza try/catch zwykłe return promise jest w porządku.