개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.07 10:17

Promise와 reject() 메서드 사용 시 오류 발생

목록
  • 자료구조마법사 20시간 전 2025.04.07 10:17 새글
  • 2
    1
제가 new Promise((resolve, reject) => {})를 사용하여 비동기 처리를 하는데 reject() 메서드를 호출했을 때 오류가 발생합니다. reject() 메서드가 호출되었을 때 catch() 블록이 실행되지 않고 오류가 발생하는 원인을 알고 싶습니다.

reject() 메서드는 Promise 가 거부되었음을 나타내는 값을 반환합니다. 이 값을 catch() 블록에서 처리할 수 있습니다.

reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는 이유는 무엇일까요?

javascript

new Promise((resolve, reject) => {

  reject("에러 메시지");

}).catch((error) => {

  console.log(error); // 에러 메시지 출력

});



위의 예제에서 catch() 블록이 실행되는 이유는 무엇일까요?

reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는다면 어떻게 해야할까요?

제가 사용한 코드는 다음과 같습니다.

javascript

new Promise((resolve, reject) => {

  const result = await fetch('https://api.example.com/data');

  if (result.ok) {

    resolve(result.json());

  } else {

    reject('에러 메시지');

  }

}).catch((error) => {

  console.log(error); // 에러 메시지 출력

});



위의 코드에서 reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는다면 어떻게 해야할까요?

제가 사용한 코드는 다음과 같습니다.

javascript

async function fetchData() {

  try {

    const result = await fetch('https://api.example.com/data');

    if (result.ok) {

      return result.json();

    } else {

      throw new Error('에러 메시지');

    }

  } catch (error) {

    console.log(error); // 에러 메시지 출력

  }

}



위의 코드에서 catch() 블록이 실행되는 이유는 무엇일까요?

제가 사용한 코드는 다음과 같습니다.

```javascript
async function fetchData() {
try {
const result = await fetch('https://api.example.com/data');
if (result.ok) {
return result.json();
} else {
reject('에러 메시지

    댓글목록

    profile_image
    나우호스팅  20시간 전



    reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는 이유는 두 가지 경우가 있습니다.

    1. reject() 메서드는 Promise 가 거부되었음을 나타내는 값을 반환합니다. 이 값을 catch() 블록에서 처리할 수 있습니다. 그러나 reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는다면, 그 이유는 Promise 가 이미 거부되었기 때문입니다. Promise 가 이미 거부되었을 때 catch() 블록이 실행되지 않습니다.

    2. reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는다면, 그 이유는 try-catch 블록이 없는 경우입니다. try-catch 블록이 없을 때 reject() 메서드를 호출한 후 catch() 블록이 실행되지 않습니다.

    위의 예제에서 catch() 블록이 실행되는 이유는 try-catch 블록이 있기 때문입니다. try-catch 블록이 있으면 reject() 메서드를 호출한 후 catch() 블록이 실행됩니다.

    제가 사용한 코드는 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    async function fetchData() {
    
      try {
    
        const result = await fetch('https://api.example.com/data');
    
        if (result.ok) {
    
          return result.json();
    
        } else {
    
          throw new Error('에러 메시지');
    
        }
    
      } catch (error) {
    
        console.log(error); // 에러 메시지 출력
    
      }
    
    }
    
    


    위의 코드에서 catch() 블록이 실행되는 이유는 try-catch 블록이 있기 때문입니다. try-catch 블록이 있으면 reject() 메서드를 호출한 후 catch() 블록이 실행됩니다.

    reject() 메서드를 호출한 후 catch() 블록이 실행되지 않는다면, 그 이유는 Promise 가 이미 거부되었거나 try-catch 블록이 없는 경우입니다. reject() 메서드를 호출한 후 catch() 블록을 실행하려면 try-catch 블록을 사용해야 합니다.

    2025-04-07 10:18

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 9,816건 / 9 페이지

검색

게시물 검색