promise/catch-or-return 制限
何を行うか
プロミスに then() が適用されるたびに、catch() も適用されるようにします。関数から返されたプロミスの場合は例外とされます。
なぜ問題なのか
プロミス内のエラーをキャッチしないと、デバッグが困難な問題やエラーハンドリングの漏れが生じる可能性があります。最悪の場合、未処理のプロミスの拒否によりアプリケーションがクラッシュする可能性があります。
例
このルールに対して 誤り なコードの例:
javascript
myPromise.then(doSomething);
myPromise.then(doSomething, catchErrors); // catch() の使用は多少改善されるこのルールに対して 正しい コードの例:
javascript
myPromise.then(doSomething).catch(errors);
function doSomethingElse() {
return myPromise.then(doSomething);
}
const arrowFunc = () => myPromise.then(doSomething);設定
このルールは、以下のプロパティを持つ設定オブジェクトを受け入れます。
allowFinally
type: boolean
default: false
finally() を終了メソッドとして許可するかどうか。
allowThen
type: boolean
default: false
2つの引数を持つ then() を終了メソッドとして許可するかどうか。
terminationMethod
type: string[]
default: ["catch"]
許可される終了メソッドのリスト(例:catch、done)。
使い方
このルールを設定ファイルまたは CLI で 有効化 するには、次のようにします:
json
{
"plugins": ["promise"],
"rules": {
"promise/catch-or-return": "error"
}
}bash
oxlint --deny promise/catch-or-return --promise-plugin