Skip to content
← Back to rules

eslint/no-promise-executor-return 細かい

An auto-fix is available for this rule.

何をするか

Promise の実行関数から値を返すことを禁止します。

なぜ悪いのか

new Promise コンストラクターは引数として実行関数を受け取ります。この関数には resolvereject というパラメータがあり、作成された Promise の状態を制御するために使用できます。

実行関数の戻り値は無視されます。実行関数から値を返すことは、その返り値が利用できないため、誤りの可能性がある動作です。また、返された値は Promise の状態に何の影響も与えません。

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

javascript
new Promise((resolve, reject) => {
  if (someCondition) {
    return defaultResult;
  }
  getSomething((err, result) => {
    if (err) {
      reject(err);
    } else {
      resolve(result);
    }
  });
});

new Promise((resolve, reject) =>
  getSomething((err, data) => {
    if (err) {
      reject(err);
    } else {
      resolve(data);
    }
  }),
);

new Promise(() => {
  return 1;
});

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

javascript
new Promise((resolve, reject) => {
  if (someCondition) {
    resolve(defaultResult);
    return;
  }
  getSomething((err, result) => {
    if (err) {
      reject(err);
    } else {
      resolve(result);
    }
  });
});

new Promise((resolve, reject) => {
  getSomething((err, data) => {
    if (err) {
      reject(err);
    } else {
      resolve(data);
    }
  });
});

new Promise((r) => {
  r(1);
});

設定

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

allowVoid

type: boolean

デフォルト: false

true に設定されている場合、void 式(例: return void resolve())の返却を許可します。

使用方法

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

json
{
  "rules": {
    "no-promise-executor-return": "error"
  }
}
bash
oxlint --deny no-promise-executor-return

参照