promise/prefer-catch 스타일
작동 방식
then(a, b) 및 then(null, b) 대신 catch를 선호합니다. 이 규칙은 프로미스 오류 처리를 위해 then 호출의 두 번째 매개변수에 인수를 전달하는 것을 금지합니다.
왜 좋지 않은가?
두 개의 인수가 있는 then 호출은 오류 처리 핸들러가 존재한다는 사실을 인지하기 어렵게 만듭니다. 또한 then 호출에서 두 번째 인수를 사용하는 문제는 프로미스 오류 처리의 순서가 명확하지 않다는 점입니다.
예를 들어 처음에는 prom.then(fn1, fn2)가 prom.then(fn1).catch(fn2)와 동일하다고 보일 수 있습니다. 그러나 실제로는 같지 않습니다. 실제로는 prom.catch(fn2).then(fn1)이 해당됩니다. 이러한 혼란은 then 호출의 두 번째 매개변수에 인수를 전달하는 것보다 명시적인 catch 호출을 선호할 이유가 됩니다.
예시
이 규칙에 잘못된 코드 예시:
js
prom.then(fn1, fn2);
prom.then(null, fn2);이 규칙에 올바른 코드 예시:
js
prom.catch(fn2).then(fn1);
prom.catch(fn2);사용 방법
설정 파일 또는 CLI를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["promise"],
"rules": {
"promise/prefer-catch": "error"
}
}bash
oxlint --deny promise/prefer-catch --promise-plugin