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