eslint/no-promise-executor-return 細かい
何をするか
Promise の実行関数から値を返すことを禁止します。
なぜ悪いのか
new Promise コンストラクターは引数として実行関数を受け取ります。この関数には resolve と reject というパラメータがあり、作成された 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