在 JavaScript 中使用 setTimeout() 拒絕 Promise 時未捕獲(In Promise)錯誤
P粉139351297
P粉139351297 2023-09-05 17:39:46
0
2
495
<p>我正在學習 JavaScript 中的 Promise,我決定實作一個簡單的 Promise,其中我將設定 3 秒的超時,然後拒絕該 Promise。拒絕它後,我捕獲錯誤並將其顯示在 HTML 元素中。該承諾完美運行並顯示訊息,但我在控制台中收到以下錯誤。 </p> <pre class="brush:php;toolbar:false;">Uncaught (in promise) I hate you Promise.then (async) (anonymous)</pre> <p>這是您參考的程式碼 -</p> <p> <pre class="snippet-code-js lang-js prettyprint-override"><code>const myPromise = new Promise(function(myResolve, reject) { setTimeout(() => { reject('I hate you'); }, 3000); }); myPromise.then(function(value) { document.getElementById("demo").innerHTML = value; }); myPromise.catch( error => { console.log("Catching it"); document.getElementById("demo").innerHTML = error; });</code></pre> <pre class="snippet-code-html lang-html prettyprint-override"><code><h2>JavaScript Promise</h2> <p>Wait 3 seconds (3000 milliseconds) for this page to change.</p> <h1 id="demo"></h1></code></pre> </p> <p>請幫我找出我所犯的錯誤。 </p>
P粉139351297
P粉139351297

全部回覆(2)
P粉748218846

這應該有效

<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>
P粉696891871
myPromise.then(function(value) {
  document.getElementById("demo").innerHTML = value;
}).catch( error => {
    console.log("Catching it");
    document.getElementById("demo").innerHTML = error;
});

您需要捕獲 .then 之後的錯誤

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板