프론트엔드/Java Script
JavaScript Sec 02_8 Promise - 콜백 지옥에서 탈출하기
영초_
2024. 2. 20. 01:56
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 메소드를 계속 이어 붙이는 것