인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hanyn님의 프로필 이미지
hanyn

작성한 질문수

풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]

모던 웹을 위한 Javascript+ES6 비동기 처리를 위한 Promise 이해2

Promise 질문

작성

·

290

0


const runCode = new Promise((resolve, reject) => {
  setTimeout(() => {
    let num = 1;
    if (num > 9) {
      resolve(num);
    } else {
      reject("error");
    }
  }, 1000);
});

runCode
  .then(
    (item) => {
      console.log("success", item);
    },
    (err) => {
      console.log(err);
    }
  )
  .then(
    () => {
      console.log("by Dave Lee");
    },
    () => {
      console.log("error2"); //error2 는 어떨때 출력되는거지?  
      
    }
  );

여기서 "error2" 는 강의중에 출력되진 않던데
언제 error2가 출력되나요 ?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

이 코드에서 “error2”는 출력되지 않습니다. Promise의 catch 메서드나 then 메서드의 두 번째 인자로 전달되는 실패 콜백 함수가 호출되는 경우에만 실행됩니다. 그러나 이 코드에서는 첫 번째 then 메서드에서 실패 콜백 함수가 실행되지 않고, 대신 두 번째 then 메서드로 넘어가게 되어 “by Dave Lee”만 출력됩니다.

따라서 “error2”가 언제 출력될지에 대해서는 현재 코드에서는 출력되지 않으며, 실행 결과에 따라 추가적인 처리가 필요한 경우, 새로운 catch 메서드를 추가하여 원하는 로직을 처리하면 됩니다.

추가적인 도움이 필요하시면 언제든지 물어보세요. 개발 공부 화이팅하세요.

hanyn님의 프로필 이미지
hanyn

작성한 질문수

질문하기