promise/no-multiple-resolved Suspicious
它的作用
此规则会警告在作为 Promise 构造函数执行器的函数中,存在多次 resolve 的路径。
为什么这很糟糕?
多次 resolve/reject 调用:
- 违反 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);
}
});
});如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"plugins": ["promise"],
"rules": {
"promise/no-multiple-resolved": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
plugins: ["promise"],
rules: {
"promise/no-multiple-resolved": "error",
},
});bash
oxlint --deny promise/no-multiple-resolved --promise-plugin版本
此规则于 v1.19.0 中添加。
