Skip to content
← Back to rules

unicorn/no-useless-promise-resolve-reject 細部なルール

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

何を実行するか

非同期関数、または Promise#then/catch/finally コールバック内で Promise.resolvePromise.reject でラップされた値を返すことを禁止します。

なぜ問題なのか

非同期関数や Promise#then/catch/finally コールバック内で戻り値を Promise.resolve でラップすることは不要です。なぜなら、非同期関数およびプロミスコールバック関数のすべての戻り値はすでに Promise でラップされているからです。同様に、エラーを Promise.reject でラップして返すことは単に throw するのと同等です。アサイクロニックジェネレーターでも同様に、yield した場合も同じです。

このルールに対して誤りなコードの例:

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

このルールに対して正しいコードの例:

javascript
async () => bar;

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

allowReject

type: boolean

default: false

true に設定された場合、非同期関数およびプロミスコールバック内での Promise.reject の使用を許可します。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のようにします:

json
{
  "rules": {
    "unicorn/no-useless-promise-resolve-reject": "error"
  }
}
bash
oxlint --deny unicorn/no-useless-promise-resolve-reject

参照