javascript - 为什么在每种情况下我都应该从 .then() 返回?
问题描述
我正在使用 ESLint,但出现此错误:每个 then() 都应该返回一个值或抛出 promise/always-return
代码:
return somePromise.then(result => {
console.log(result);
}).catch(error => {
console.error(error);
});
我为什么要从这个承诺中回来?显然没有必要,因为我只想在日志中打印结果,仅此而已。这条规则似乎不适用于所有情况。我正在编写一个 Firebase 数据库触发器,我相信它只对知道承诺是否已解决感兴趣。
解决方案
此eslint-plugin-promise
规则的存在是为了防止由于未链接的 Promise 导致的错误:
return somePromise.then(result => {
anotherPromise.then(...);
});
如果您认为您无法从此规则中受益,并且它只会使您的代码中充满额外的return
语句或eslint-disable-*
注释,请禁用它。
Bluebird 以防止此类错误而闻名,它会在存在嵌套的未链接承诺时发出警告。
推荐阅读
- github-actions - 如果我输入注释,运行命令并添加提交的 GitHub 操作
- node.js - 无法通过 fs.open() 命令创建文件,即使该文件之前不存在
- python - scikit-build 纯 Python 包
- bash - 时髦的。获取部分值被参数化的参数值
- javascript - 工具提示上按月计算的折线图总计
- android - 创建可执行的 android / apk game maker 2 出错,(我使用 android studio)
- r - 使用二进制列对新数据框进行子集
- ios - 构建时出现颤振错误:命令 PhaseScriptExecution 失败,退出代码为非零
- c# - 确保 HTTPS 绑定存在于 Wix 中 IIS 的默认网站中
- python - 在 pycharm 中将 .py 转换为 .ipynb 文件