为什么我应该在每种情况下都从 .then() 返回



我正在使用 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 以防止此类错误而闻名,它会在嵌套未链接承诺的情况下产生警告。

最新更新