Chyba ve funkci setTimeout
Co myslíte? Spustí se .catch? Zdůvodněte svou odpověď.
new Promise(function(splň, zamítni) {
setTimeout(() => {
throw new Error("Ouha!");
}, 1000);
}).catch(alert);
Odpověď zní: ne, nespustí:
new Promise(function(splň, zamítni) {
setTimeout(() => {
throw new Error("Ouha!");
}, 1000);
}).catch(alert);
Jak bylo řečeno v této kapitole, kolem kódu funkce je „implicitní try..catch“. Všechny synchronní chyby tedy budou ošetřeny.
Zde však není chyba generována při běhu exekutoru, ale později. Příslib ji tedy nemůže zpracovat.