Error di dalam setTimeout
Apa yang anda pikirkan? Akankan .catch
terpicu? Jelaskan jawaban anda.
new Promise(function (resolve, reject) {
setTimeout(() => {
throw new Error("Whoops!");
}, 1000);
}).catch(alert);
Jawabannya adalah: tidak, tidak terpicu:
new Promise(function (resolve, reject) {
setTimeout(() => {
throw new Error("Whoops!");
}, 1000);
}).catch(alert);
Seperti yang dikatakan di bab, ada sebuah "try..catch
implisit" di sekitar kode function. jadi semua error synchronous ditangani.
Tetapi di sini error tersebut tidak dihasilkan saat eksekutornya berjalan, tapi nanti. Jadi promise tidak dapat menanganinya.