Skip to content
← Back to rules

eslint/no-promise-executor-return Pedantic

🚧 An auto-fix is planned for this rule, but not implemented at this time.

작동 방식

Promise 실행자 함수에서 값을 반환하는 것을 금지합니다.

왜 나쁜가요?

new Promise 생성자는 실행자 함수를 인수로 받습니다. 이 실행자 함수는 resolvereject 매개변수를 가지며, 생성된 Promise의 상태를 제어할 수 있습니다.

실행자 함수의 반환값은 무시됩니다. 실행자 함수에서 값을 반환하는 것은 가능한 오류일 수 있으며, 반환된 값은 사용될 수 없고 Promise에 영향을 주지 않습니다.

예시

이 규칙에 부적절한 코드 예시:

javascript
new Promise((resolve, reject) => {
  if (someCondition) {
    return defaultResult;
  }
  getSomething((err, result) => {
    if (err) {
      reject(err);
    } else {
      resolve(result);
    }
  });
});

new Promise((resolve, reject) =>
  getSomething((err, data) => {
    if (err) {
      reject(err);
    } else {
      resolve(data);
    }
  }),
);

new Promise(() => {
  return 1;
});

이 규칙에 적절한 코드 예시:

javascript
new Promise((resolve, reject) => {
  if (someCondition) {
    resolve(defaultResult);
    return;
  }
  getSomething((err, result) => {
    if (err) {
      reject(err);
    } else {
      resolve(result);
    }
  });
});

new Promise((resolve, reject) => {
  getSomething((err, data) => {
    if (err) {
      reject(err);
    } else {
      resolve(data);
    }
  });
});

new Promise((r) => {
  r(1);
});

구성

이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.

allowVoid

type: boolean

기본값: false

true로 설정하면 void 표현식(예: return void resolve())의 반환을 허용합니다.

사용 방법

구성 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "no-promise-executor-return": "error"
  }
}
bash
oxlint --deny no-promise-executor-return

참조