Skip to content
← Back to rules

unicorn/no-useless-promise-resolve-reject Pedantic

🛠️ An auto-fix is available for this rule.

作用

禁止在异步函数或 Promise#then/catch/finally 回调中返回被 Promise.resolvePromise.reject 包裹的值。

为什么这不好?

在异步函数或 Promise#then/catch/finally 回调中,使用 Promise.resolve 包裹返回值是没有必要的,因为异步函数和 Promise 回调函数中的所有返回值都已经被包装在一个 Promise 中了。

同样,返回一个被 Promise.reject 包裹的错误等价于直接 throw 该错误。这在异步生成器中的 yield 也是同样如此。

示例

此规则的错误代码示例:

javascript
async () => Promise.resolve(bar);

此规则的正确代码示例:

javascript
async () => bar;

配置

此规则接受一个包含以下属性的配置对象:

allowReject

type: boolean

default: false

如果设置为 true,则允许在异步函数和 promise 回调中使用 Promise.reject

使用方法

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/no-useless-promise-resolve-reject": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/no-useless-promise-resolve-reject": "error",
  },
});
bash
oxlint --deny unicorn/no-useless-promise-resolve-reject

版本

此规则添加于 v0.0.18。

参考资料