我正在使用 ESLint,但出现此错误:每个 then() 应该返回一个值或抛出承诺/始终返回
法典:
return somePromise.then(result => {
console.log(result);
}).catch(error => {
console.error(error);
});
我为什么要从这个应许中回来?显然没有必要,因为我只想在日志中打印结果,仅此而已。这条规则似乎在所有情况下都适用。我正在编写一个Firebase数据库触发器,我相信它只对知道承诺是否已解决感兴趣。
此eslint-plugin-promise
规则的存在是为了防止因承诺未被链接而导致的错误:
return somePromise.then(result => {
anotherPromise.then(...);
});
如果您认为您无法从此规则中受益,并且它只会使您的代码充满额外的return
语句或eslint-disable-*
注释,请禁用它。
Bluebird 以防止此类错误而闻名,它会在嵌套未链接承诺的情况下产生警告。