Skip to content
← Back to rules

promise/no-multiple-resolved Suspicious

何をしていますか

このルールは、Promise コンストラクタの実行関数内で複数回解決されるパスに対して警告を出します。

なぜ悪いのか

複数回の解決/拒否呼び出しは:

  • Promise/A+ の仕様に違反する
  • Promise の振る舞いに影響を与えない
  • コードの意図が不明確になる
  • 実装上の論理エラーを示している可能性がある

このルールに対する誤ったコードの例:

javascript
new Promise((resolve, reject) => {
  fn((error, value) => {
    if (error) {
      reject(error);
    }

    resolve(value); // `reject` と `resolve` の両方が呼び出される可能性がある。
  });
});

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

javascript
new Promise((resolve, reject) => {
  fn((error, value) => {
    if (error) {
      reject(error);
    } else {
      resolve(value);
    }
  });
});

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "plugins": ["promise"],
  "rules": {
    "promise/no-multiple-resolved": "error"
  }
}
bash
oxlint --deny promise/no-multiple-resolved --promise-plugin

参照