Skip to content
← Back to rules

promise/no-promise-in-callback 可疑

它的作用

禁止在错误优先回调函数中使用 Promises。

为什么这是个问题?

将 Promises 与回调混合使用可能导致代码逻辑不清且不一致。
Promises 和回调是处理异步代码的两种不同模式。
将它们混用会使逻辑流程更难追踪,并使错误处理变得更加复杂,因为回调依赖于“错误优先”模式,而 Promises 使用 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);

如何使用

通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "plugins": ["promise"],
  "rules": {
    "promise/no-promise-in-callback": "error"
  }
}
bash
oxlint --deny promise/no-promise-in-callback --promise-plugin

参考资料