在 JavaScript 中使用 setTimeout() 拒绝 Promise 时未捕获(In Promise)错误
P粉139351297
P粉139351297 2023-09-05 17:39:46
[CSS3讨论组]

我正在学习 JavaScript 中的 Promise,我决定实现一个简单的 Promise,其中我将设置 3 秒的超时,然后拒绝该 Promise。拒绝它后,我捕获错误并将其显示在 HTML 元素中。该承诺完美运行并显示消息,但我在控制台中收到以下错误。

Uncaught (in promise) I hate you
Promise.then (async)        
(anonymous)

这是供您参考的代码 -

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;
});
<h2>JavaScript Promise</h2>
<p>Wait 3 seconds (3000 milliseconds) for this page to change.</p>
<h1 id="demo"></h1>

请帮助我找出我所犯的错误。

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 之后的错误

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号