Promise 사용 이유
- 프로미스는 주로 서버에서 데이터를 받아 화면에 표시할 때 사용한다.
$.get('url', function(response) {
// ...
});
- 위 API 가 실행되면 서버에 데이터 요청을 한다.
- 그런데 여기서 데이터를 받아오기도 전에 마치 데이터를 다 받아온 것 마냥 화면에 데이터를 표시하려고 하면 오류가 발생하거나 빈 화면이 뜬다.
- 프로미스는 이와 같은 문제점을 해결하기 위한 방법 중 하나 이다.
Promise
- 프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다.
- 여기서 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’ 을 의미한다.
Promise 의 3가지 상태
- new Promise() 로 프로미스를 생성하고 종료될 때까지 3가지 상태를 가진다.
- 여기서 말하는 상태란 프로미스의 처리 과정을 의미한다.
- Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
- Fulfilled(이행, 완료) : 비동기 처리가 완료되어 프로미스가 결과 값을 반환해준 상태
- Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태
Pending**(대기)**
new Promise(function(resolve, reject) {
// ...
});
- new Promise() 메서드를 호출하면 대기 상태가 된다.
- new Promise() 메서드를 호출할 때 콜백 함수를 선언할 수 있다.
- 콜백 함수의 인자는
resolve, reject 이다.
Fulfilled(이행, 완료)