我正在编写一段在 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/