const example = new Promise((resolve, reject) => {
let isSuccess = true; // true, false 값을 변경하며 테스트 해봅니다.
if (!isSuccess) {
throw new Error("요청에 실패했습니다."); // 에러가 발생하면 reject하지 않아도 catch메서드로 이동합니다.
}
resolve();
});
example
.then((res) => {
console.log(res);
throw new Error("일부러 에러를 내봤어요.."); // 에러가 발생하면 reject하지 않아도 catch 메서드로 이동합니다.
})
.catch((err) => console.log(err));
위처럼 then메소드 안에서 에러를 만나게 되면
아래 catch구문에 넘어가게 된다.
catch문은 reject가 호출되야하는거 아닌가? 할 수 있지만
promise의 모든 에러는 catch가 담당을 해서
throw new error 가 실행되면
catch가 컨트롤 한다.
'웹 풀스택 > javascript' 카테고리의 다른 글
비동기-promise 2 프로미스가 어떻게 콜백지옥 개선 시키나? (0) | 2022.04.19 |
---|---|
비동기-promise 1 (0) | 2022.04.19 |
동기,비동기함수의 정의 콜백함수 (0) | 2022.04.19 |