javascript - Promise 应该被错误或字符串拒绝吗?

标签 javascript promise

我正在编写一段在 Javascript 中大量使用类似 ECMAScript 6 的 Promise 的代码。

我无法决定用字符串或错误来拒绝 Promise 是否更“正确”,因为我已经看到这两种模式都被使用了。

也就是说,如果打电话更好

return new Promise(response, reject) {
    reject("Sky is falling.");
}

return new Promise(response, reject) {
    reject(new Error("Sky is falling."));
}

最佳答案

查看 Mozilla 的文档会很有帮助:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject

Promise.reject("Testing static reject").then(function(reason) {
  // not called
}, function(reason) {
  console.log(reason); // "Testing static reject"
});

Promise.reject(new Error("fail")).then(function(error) {
  // not called
}, function(error) {
  console.log(error); // Stacktrace
});

它将字符串和错误显示为拒绝的有效“原因”。最重要的是(我认为)“理由”应该有意义。

如果堆栈跟踪有帮助,那么最好提供错误。如果只需要一个简单的字符串,那么就足够了。

关于javascript - Promise 应该被错误或字符串拒绝吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335411/

相关文章:

javascript - 如何使用 document.getElementsByClassName

javascript - 如何计算 "check-in date"和 "check-out date"之间有多少天?

javascript - 如果没有解决,如何取消最后的 promise ?

javascript - 我的新 HTML 元素正在以指数速度创建 WTF Javascript 和 jQuery

javascript - 连接两个节点列表

javascript - 在 JavaScript/moment 中解释(不转换!)其他时区的日期

javascript - promise Stripe API

javascript - 等待所有步骤成功或失败的异步步骤

javascript - 为什么创建一个新的繁琐连接会使我的程序无法完成?

javascript - AngularJs 将 promise 响应作为参数传递给函数