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
기본값: false
finally()를 종료 메서드로 허용할지 여부.
allowThen
type: boolean
기본값: false
두 인자를 사용한 then()을 종료 메서드로 허용할지 여부.
terminationMethod
type: string[]
기본값: ["catch"]
허용되는 종료 메서드 목록 (예: catch, done).
사용 방법
구성 파일 또는 명령줄에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["promise"],
"rules": {
"promise/catch-or-return": "error"
}
}bash
oxlint --deny promise/catch-or-return --promise-plugin