[TIL] Promise

sooyoung choi·2023년 10월 25일
0

Javascript, Node.js

목록 보기
10/37
post-thumbnail

asyc, await 이해가 안돼서 많이 찾아보고 물어보기도 했는데 이해가 가지 않았던 이유를 여기서 찾았다.
프로미스를 모르니 왜 쓰는지도 몰랐었음..ㅎ

1. 프로미스

  • 자바스크립트는 비동기 처리 위한 하나의 패턴으로 콜백 함수를 사용하는데, 전통적인 콜백 패턴은 콜백 헬로 인해 가독성이 나쁘고 비동기 처리 중 발생한 에러 처리 곤란으로 인해 여러 개의 비동기 처리를 한 번에 처리하는 데도 한계가 있다.
  • 이를 극복하기 위해 ES6에서 프로미스가 도입되었다.
  • 비동기의 간편한 처리를 위한 오브젝트.
// 생성
const promise = new Promise((resolve, reject) => {
	// promise 함수의 콜백 함수 내부에서 비동기 처리를 수행한다.
  if(/* 비동기 처리 성공 */) {
  		resolve('result');   
	} else {
    	reject('fail');                        
	}
});

1-1. 프로미스의 상태 조건

프로미스의 상태 정보의미상태 변경 조건
pending비동기 처리가 아직 수행되지 않음프로미스 생성된 직후 기본 상태
fulfilled비동기 처리가 수행된 상태 (성공)reslove 함수 호출
rejected비동기 처리가 수행된 상태 (실패)reject 함수 호출

1-2. 프로미스 후속 처리 메서드 및 인수, 반환값

후속 처리 메서드콜백 함수의 인수후속 처리 메서드의 반환값
thenpromiseGet 함수가 반환한 프로미스가 resolve한 값콜백 함수가 반환한 프로미스
then처음 Then 메서드가 반환한 프로미스가 resolve한 값콜백 함수가 반환한 값을 Resolve한 프로미스
catch - 에러 발생하지 않으면 호출되지 않음promiseGet 함수 또는 앞선 후속 처리 메서드가 반환한 프로미스가 reject한 값콜백 함수가 반환한 값을 resolve한 프로미스

0개의 댓글