Skip to content
← Back to rules

promise/no-promise-in-callback 懸念

何をするか

エラー優先のコールバック関数内でプロミスを使用することを禁止します。

なぜ問題なのか

プロミスとコールバックを混在させると、不明瞭で一貫性のないコードになりがちです。 プロミスとコールバックは、非同期処理を扱うための異なるパターンです。 両者を混ぜると、処理の流れが分かりにくくなり、エラー処理も複雑化します。 コールバックはエラーを最初に受け取るパターンに依存しているのに対し、プロミスは 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

参考資料