Ralat tidak ditangkap (Dalam Janji) apabila menolak Janji menggunakan setTimeout() dalam JavaScript
P粉139351297
2023-09-05 17:39:46
<p>Saya sedang belajar Promises dalam JavaScript dan saya memutuskan untuk melaksanakan Promise mudah di mana saya akan menetapkan tamat masa selama 3 saat dan kemudian menolak Promise. Selepas menolaknya, saya menangkap ralat dan memaparkannya dalam elemen HTML. Janji berjalan dengan sempurna dan memaparkan mesej, tetapi saya mendapat ralat berikut dalam konsol. </p>
<pre class="brush:php;toolbar:false;">Tidak tertangkap (dengan janji) Saya benci awak
Promise.then (async)
(tanpa nama)</pra>
<p>Berikut ialah kod untuk rujukan anda -</p>
<p>
<pre class="snippet-code-js lang-js prettyprint-override"><code>const myPromise = Janji baharu(fungsi(myResolve, tolak) {
setTimeout(() => {
reject('Saya benci awak');
}, 3000);
});
myPromise.then(fungsi(nilai) {
document.getElementById("demo").innerHTML = nilai;
});
myPromise.catch( ralat => {
console.log("Menangkapnya");
document.getElementById("demo").innerHTML = ralat;
});</code></pre>
<pre class="snippet-code-html lang-html prettyprint-override"><code><h2>JavaScript Promise</h2>
<p>Tunggu 3 saat (3000 milisaat) untuk halaman ini berubah.</p>
<h1 id="demo"></h1></code></pre>
</p>
<p>Tolong bantu saya mengetahui kesilapan yang saya lakukan. </p>
Ini sepatutnya berkesan
Anda perlu menangkap ralat selepas .kemudian