Skip to content
← Back to rules

eslint/prefer-promise-reject-errors 스타일

작동 방식

프로미스 거부의 이유로 Error 객체를 사용하도록 요구합니다.

왜 좋지 않은가?

프로미스에서 사용자 정의 에러의 reject() 함수에 전달하는 값으로는 내장된 Error 객체의 인스턴스만 사용하는 것이 좋은 실천이라고 여겨집니다. Error 객체는 스택 트레이스를 자동으로 저장하므로, 오류가 어디서 발생했는지 확인하여 디버깅하는 데 사용할 수 있습니다. 만약 프로미스가 Error가 아닌 값으로 거부된다면, 거부가 발생한 위치를 파악하기 어려울 수 있습니다.

예시

이 규칙에 대한 잘못된 코드 예시:

js
Promise.reject("something bad happened");

Promise.reject(5);

Promise.reject();

new Promise(function (resolve, reject) {
  reject("something bad happened");
});

new Promise(function (resolve, reject) {
  reject();
});

이 규칙에 대한 올바른 코드 예시:

js
Promise.reject(new Error("something bad happened"));

Promise.reject(new TypeError("something bad happened"));

new Promise(function (resolve, reject) {
  reject(new Error("something bad happened"));
});

var foo = getUnknownValue();
Promise.reject(foo);

구성

이 규칙은 다음 속성을 가진 구성 객체를 받습니다:

allowEmptyReject

type: boolean

기본값: false

인수 없이 Promise.reject()를 호출하는 것을 허용할지 여부입니다.

사용 방법

이 규칙을 설정 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "prefer-promise-reject-errors": "error"
  }
}
bash
oxlint --deny prefer-promise-reject-errors

참고 자료