eslint/no-promise-executor-return Pedantic
作用
禁止在 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
default: false
如果为 true,允许返回 void 表达式(例如,return void resolve())。
使用方法
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"no-promise-executor-return": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"no-promise-executor-return": "error",
},
});bash
oxlint --deny no-promise-executor-return版本
此规则在 v1.33.0 中添加。
