promise/no-promise-in-callback Suspicious
作用
禁止在错误优先回调函数中使用 Promise。
为什么这很糟糕?
将 Promise 和回调混用会导致代码不清晰且不一致。 Promise 和回调是处理异步代码的两种不同模式。 将它们混用会使逻辑流程更难跟踪,并使错误处理更复杂, 因为回调依赖错误优先模式,而 Promise 使用 catch。
示例
以下是此规则的错误代码示例:
js
doSomething((err, val) => {
if (err) console.error(err);
else doSomethingElse(val).then(console.log);
});以下是此规则的正确代码示例:
js
promisify(doSomething)().then(doSomethingElse).then(console.log).catch(console.error);配置
exemptDeclarations
type: boolean
default: false
是否免除函数声明。默认为 false。
如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"plugins": ["promise"],
"rules": {
"promise/no-promise-in-callback": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
plugins: ["promise"],
rules: {
"promise/no-promise-in-callback": "error",
},
});bash
oxlint --deny promise/no-promise-in-callback --promise-plugin版本
此规则新增于 v0.13.1。
