JavaScript で setTimeout() を使用して Promise を拒否すると、キャッチされない (Promise) エラーが発生する
P粉139351297
2023-09-05 17:39:46
<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>
これはうまくいくはずです
リーリー
.then
の後のエラーをキャッチする必要があります。