Fejl i setTimeout
Hvad tror du? Vil .catch blive udløst? Forklar dit svar.
new Promise(function(resolve, reject) {
setTimeout(() => {
throw new Error("Ups!");
}, 1000);
}).catch(alert);
Svaret er: nej, det vil ikke:
new Promise(function(resolve, reject) {
setTimeout(() => {
throw new Error("Ups!");
}, 1000);
}).catch(alert);
Som sagt tidligere i kapitlet er der en âimplicit try..catchâ omkring funktionens kode. Det betyder at alle synkrone fejl hÃ¥ndteres.
Men her genereres fejlen ikke mens udføreren kører, men senere. Så promise kan ikke håndtere den.