prefer-promise-reject-errors
要求使用 Error 对象作为 Promise 拒绝原因
对于 Promises 中的用户定义错误,仅将内置 Error
对象的实例传递给 reject()
函数被认为是一种很好的做法。Error
对象自动存储堆栈跟踪,可用于通过确定错误来自何处来调试错误。如果 Promise 以非 Error
值被拒绝,则可能很难确定拒绝发生的位置。
规则详情
该规则旨在确保 Promises 仅被 Error
对象拒绝。
选项
此规则采用一个可选对象参数:
allowEmptyReject: true
(默认为false
)允许不带参数调用Promise.reject()
。
OpUIv0oisK0bLUHx1HrbeprjTmaHIkOBU8JijIRILjf97h20WuzOboUCkSVDjgDx
/*eslint prefer-promise-reject-errors: "error"*/
Promise.reject("something bad happened");
Promise.reject(5);
Promise.reject();
new Promise(function(resolve, reject) {
reject("something bad happened");
});
new Promise(function(resolve, reject) {
reject();
});
cpCXNsC2RixCLVqfAZWyxxZwdKAQQJ9XuumnZbwI+QzJDz9EkFlmFnrpIlN7+8w0
/*eslint prefer-promise-reject-errors: "error"*/
Promise.reject(new Error("something bad happened"));
Promise.reject(new TypeError("something bad happened"));
new Promise(function(resolve, reject) {
reject(new Error("something bad happened"));
});
var foo = getUnknownValue();
Promise.reject(foo);
CDruO8STtfiPEOKFpJL7OFmL2Qa+Gmjj9IocQHbiKP8KG0lSz4WG1iHwq6/mcnCA5rSG2nl9Q7XhIs9SfRLN3BqPGPW9wYuFWLM949xT+tOZYVpztHN0UkmsczV+tiYR
/*eslint prefer-promise-reject-errors: ["error", {"allowEmptyReject": true}]*/
Promise.reject();
new Promise(function(resolve, reject) {
reject();
});
已知限制
7Nb/PJvqqVosfdnIT6tcEQj/fIh8FZw7nTXaEIL1Tq+F25607jVB0eTQw/u4GE8ex+eD4HiWdQTWNguUYtDvUz8SmvEzcJ30D/Soy3rY/pE828LrqtEKzHWjKu5o9orUybjTqIl5O0s4EL5xIb/PjOVBxyzOOulosouNiJBwKSMh19gRcOlU1zH+JYo52z1qcvjib51mA96NG8ACyuljqVwLRVpHwdMCCxSJrByoq3kVqw15AWc04CD+/kBoMlPlH+X/a3V2J4MuXzfjGOyCjcUbhIbPjm5IljzHtUjzQYdDuSVp8hckmdkW1aQU8w4DXx2t105h0P6qIsN4vXwampPjubVqY3spOvVAluWz9nFNAbhFXqO5RPVdnzDAnTLWM/0gyCcgqncYZhmepeSoiX8qi6zWTRt3LW4BhrQjU4/X7MHPuR+mTzOEbD7iNuX8sWgKRscLrvBeIPc1Sn1zDBQY8a6mfIpWmoKdfecBvXp3uDG5WioMMyxjxdw7SrIV5jYtGyJf9FHjpyVEM7Myt0/NjnK9TTbSFskvt70jh2tOC4K8NlZKHzsB3wYVEjAIZimMPjbUPEWmE6mP/hTqRA==
/bRZYixZMBhwu9+gTW12pGEHorUE9pLDaJP+O98AIW/59tKVQX45pmWSQheEaZzmSmPzeQaK08Oc30wozffsg4uTlPzwekXluLzO3OaGi9XioQahukdknzRV/bW/w+AZnwpEgBS5m/953RNM4vQtQyWlpZgA8E15ee26IswEskFE6DIDxFqab7wPEMny4cSwe1vbVALVXl0c+w8ZO1jS94GdCj+4ULo33BOCxWTD01K8I4GaJbQ36/M4lsF9yZa71bhgtw6N2wgvxZapedsz+30dj+pexVn10Ud2GqEwuNeMiaYv4S2+3/qks+F6fPbJAy/m4gLcPuaU9+xWT4pOpZ/N5BHXCPg4Ywpu+JK6AJtZtWIuAsaV0tILZvhdsNGgcdw+GLnF9bRpQGAaXI6a4w==
何时不使用
G1CpA79ZtVwlMSIlF58uVfn6QJbt2ksMDYR7/s1g8278LSB1w54fJijxyi6ZeQbi12RQaz9IZGc2+CU0IYQiScfOxgIswp9UkRhcigxB8YsPNd/mxZzd3kU2HLG2l3FK