検索

ホームページ  >  に質問  >  本文

JavaScript で setTimeout() を使用して Promise を拒否すると、キャッチされない (Promise) エラーが発生する

<p>私は JavaScript で Promise を学習しています。タイムアウトを 3 秒に設定して Promise を拒否するという単純な Promise を実装することにしました。拒否した後、エラーをキャッチして HTML 要素に表示します。 Promise は完全に実行され、メッセージが表示されますが、コンソールに次のエラーが表示されます。 </p> <pre class="brush:php;toolbar:false;">捕まらない(約束で)私はあなたが嫌い​​です Promise.then (非同期) (匿名)</pre> <p>参考用のコードは次のとおりです -</p> <p> <pre class="snippet-code-js lang-js prettyprint-override"><code>const myPromise = new Promise(function(myResolve, accept) { setTimeout(() => { 拒否('私はあなたが嫌い​​です'); }, 3000); }); myPromise.then(関数(値) { document.getElementById("demo").innerHTML = 値; }); myPromise.catch( error => { console.log("捕まえています"); document.getElementById("demo").innerHTML = エラー; });</code></pre> <pre class="snippet-code-html lang-html prettyprint-override"><code><h2>JavaScript Promise</h2> <p>このページが変わるまで 3 秒 (3000 ミリ秒) 待ちます。</p> <h1 id="デモ"></h1></code></pre> </p> <p>私の間違いを理解するのを手伝ってください。 </p>
P粉139351297P粉139351297566日前566

全員に返信(2)返信します

  • P粉748218846

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

    これはうまくいくはずです

    リーリー

    返事
    0
  • P粉696891871

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

    リーリー

    .then

    の後のエラーをキャッチする必要があります。

    返事
    0
  • キャンセル返事