JavaScript Promise 未显示结果的常见原因及解决方案

JavaScript Promise 未显示结果的常见原因及解决方案

promise 的 `reject` 分支未被处理,导致错误被静默忽略;必须通过 `.catch()` 捕获拒绝状态,否则控制台可能报错且页面无任何输出。

在你的 HTML 页面中,Promise 确实已正确创建并执行,但它并未“不工作”,而是因条件不满足触发了 reject,而你只监听了 resolve(即 .then()),却忽略了拒绝路径。由于 toldThePeople = “BBQ Cauliflower” 与 order = “BBQ Corn” 不相等,reject(“I WANT THE MANAGER!!!”) 被调用——此时 .then() 完全不会执行,也不会报错(除非有未捕获的 Promise rejection),因此

始终为空。

✅ 正确做法是:为 Promise 链添加 .catch() 处理拒绝情况:

知了追踪

知了追踪

AI智能信息助手,智能追踪你的兴趣资讯

下载

? 额外建议与注意事项:

  • 在开发阶段,建议始终添加 .catch(),或全局监听未捕获 Promise 错误:
    window.addEventListener('unhandledrejection', e => {
      console.error('Unhandled Promise rejection:', e.reason);
    });
  • 若需区分成功/失败样式,可分别处理:
    restaurantOrder
      .then(value => {
        tag.innerHTML = `${value}`;
      })
      .catch(error => {
        tag.innerHTML = `${error}`;
      });
  • 确保

https://www.php.cn/faq/1987583.html

发表回复

Your email address will not be published. Required fields are marked *