Promise
- 콜백지옥 : 연속적으로 콜백함수의 결과값을 또다른 콜백함수의 값으로 사용할 때, 계속해서 콜백이 깊어지는 현상
- 콜백지옥을 해결할 수 있는 자바스크립트의 Promise 객체
비동기 작업이 가질 수 있는 3가지 상태
- Pending (대기 상태) : 현재 비동기 작업이 진행 중이거나 작업이 시작할 수 없는 문제가 발생했음을 의미
- Fulfilled (성공) : 비동기 작업이 우리가 의도한 대로 정상적으로 완료되었음을 의미
- Rejected (실패) : 서버가 응답하지 않는다거나 시간이 너무 오래 걸려서 자동으로 취소되는 등 모종의 이유로 비동기 작업이 실패했음을 의미
- promise 객체를 사용하지 않고 비동기 작업을 처리할 때
- promise 객체를 사용하여 비동기 작업을 처리할 때
- isPositiveP 함수의 리턴값이 promise 객체이다.
- 어떤 함수의 리턴값이 promise 객체라는 것은, 이 함수는 비동기 작업을 하고 그 작업의 결과를 promise 객체로 반환받아서 사용할 수 있는 함수라고 이해하면 됨
promise 객체를 이용하여 비동기 작업 처리
- promise 객체의 메소드인 then과 catch를 사용하여 비동기 작업 처리
- then의 파라미터에 콜백함수를 넣으면 resolve로 인식
- catch는 reject로 인식
promise 객체를 이용하여 콜백지옥을 탈출하는 방법
추가 설명)
⇒ 즉, taskA(5,1).then를 수행하면 taskB를 수행하고 반환 받은 promise 객체를 반환 받는다.
- then chaining : then 메소드를 계속 이어 붙이는 것
'프론트엔드 > Java Script' 카테고리의 다른 글
JavaScript Sec 02_10 API 호출하기 (0) | 2024.02.20 |
---|---|
JavaScript Sec 02_9 async & await - 직관적인 비 동기 처리 코드 작성하기 (0) | 2024.02.20 |
JavaScript Sec02_7 동기&비동기 (0) | 2024.02.20 |
JavaScript Sec 02_6 Spread 연산자 (0) | 2024.02.20 |
JavaScript Sec 02_5 비 구조화 할당 (구조 분해 할당) (0) | 2024.02.20 |