cari

Rumah  >  Soal Jawab  >  teks badan

Ralat tidak ditangkap (Dalam Janji) apabila menolak Janji menggunakan setTimeout() dalam JavaScript

<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>
P粉139351297P粉139351297531 hari yang lalu542

membalas semua(2)saya akan balas

  • P粉748218846

    P粉7482188462023-09-06 12:09:35

    Ini sepatutnya berkesan

    <html>
    
    <body>
    
      <h2>JavaScript Promise</h2>
    
      <p>Wait 3 seconds (3000 milliseconds) for this page to change.</p>
    
      <h1 id="demo"></h1>
    
      <script>
        const myPromise = new Promise(function(myResolve, reject) {
          setTimeout(() => {
            reject('I hate you');
          }, 3000);
        });
    
        myPromise.then(function(value) {
          document.getElementById("demo").innerHTML = value;
        }).catch(error => {
          console.log("Catching it");
          document.getElementById("demo").innerHTML = error;
        });
      </script>
    
    </body>
    
    </html>

    balas
    0
  • P粉696891871

    P粉6968918712023-09-06 10:15:51

    myPromise.then(function(value) {
      document.getElementById("demo").innerHTML = value;
    }).catch( error => {
        console.log("Catching it");
        document.getElementById("demo").innerHTML = error;
    });

    Anda perlu menangkap ralat selepas .kemudian

    balas
    0
  • Batalbalas