JavaScript · Senior · Pytanie 4 z 75

Dlaczego poniższy promise nigdy nie zostanie odrzucony?

new Promise((resolve, reject) => {
  setTimeout(() => { throw new Error("boom"); }, 0);
});

Wyjaśnienie

Tylko synchroniczne wyjątki w executorze automatycznie zamieniają się w odrzucenie. Błąd w callbacku timera następuje później, w osobnym zadaniu: staje się globalnym nieobsłużonym błędem, a promise na zawsze zostaje pending. Trzeba jawnie wywołać reject.

Do poczytania

Błąd w pytaniu

JavaScript · Senior · pytanie 4

Sprawdź się

Rozwiąż test JavaScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test