promise/no-nesting 스타일
동작 방식
중첩된 then() 또는 catch() 문을 금지합니다.
왜 문제가 되는가?
프로미스의 중첩은 코드를 읽고 이해하기 더 어렵게 만듭니다.
예시
이 규칙에 부적절한 코드 예시:
javascript
doThing().then(() => a.then());
doThing().then(function () {
a.then();
});
doThing().then(() => {
b.catch();
});
doThing().catch((val) => doSomething(val).catch(errors));이 규칙에 적절한 코드 예시:
javascript
doThing().then(() => 4);
doThing().then(function () {
return 4;
});
doThing().catch(() => 4);javascript
doThing()
.then(() => Promise.resolve(1))
.then(() => Promise.resolve(2));이 예제는 규칙 위반이 아닙니다. 여기서 중첩을 해제하면 표현식 getC(a, b) 내에서 a가 정의되지 않기 때문입니다.
javascript
doThing().then((a) => getB(a).then((b) => getC(a, b)));사용 방법
구성 파일이나 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["promise"],
"rules": {
"promise/no-nesting": "error"
}
}bash
oxlint --deny promise/no-nesting --promise-plugin