
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