더북(TheBook)

Note 콘솔 창에 나오는 <fulfilled>, <rejected>, <pending>은 무엇인가요?

프로미스를 콘솔 창에 입력하다 보면 다음과 같이 <fulfilled>, <rejected>, <pending>이라는 표현을 보게 됩니다.

new Promise((resolve, reject) => {
  resolve('성공');
});
< Promise {<fulfilled>: '성공'}
new Promise((resolve, reject) => {
  reject('에러');
});
< Promise {<rejected>: '에러'}
Uncaught (in promise) 에러
new Promise((resolve, reject) => {
  setTimeout(() => resolve('성공'), 0);
});
< Promise {<pending>}

Promise는 현재 객체가 프로미스 객체라는 걸 알려 주고, <> 안 값은 각 프로미스의 상태를 의미합니다. fulfilled는 성공했다는 뜻이고, rejected는 실패했다는 뜻이며, pending은 성공이나 실패 결과를 기다린다는 뜻입니다. pendingresolve()reject()가 비동기 함수 내부에서 호출될 때 볼 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.