더북(TheBook)

new Promise로 프로미스를 생성할 수 있으며, 안에 resolvereject를 매개변수로 갖는 콜백 함수를 넣어줍니다. 이렇게 만든 promise 변수에 thencatch 메서드를 붙일 수 있습니다. 프로미스 내부에서 resolve가 호출되면 then이 실행되고, reject가 호출되면 catch가 실행됩니다.

resolvereject에 넣어준 인자는 각각 thencatch의 매개변수에서 받을 수 있습니다. 즉, resolve('성공')가 호출되면 thenmessage가 ‘성공’이 됩니다. 만약 reject('실패')가 호출되면 catcherror가 ‘실패’가 되는 것입니다. condition 변수를 false로 바꿔보면 catch에서 에러가 로깅됩니다.

then이나 catch에서 다시 다른 then이나 catch를 붙일 수 있습니다. 이전 thenreturn 값을 다음 then의 매개변수로 넘깁니다. 프로미스를 return한 경우 프로미스가 수행된 후 다음 then이나 catch가 호출됩니다.

promise
  .then((message) => {
    return new Promise((resolve, reject) => {
      resolve(message);
    });
  })
  .then((message2) => {
    console.log(message2);
    return new Promise((resolve, reject) => {
      resolve(message2);
    });
  })
  .then((message3) => {
    console.log(message3);
  })
  .catch((error) => {
    console.error(error);
  });
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.