Promise
Promise: 자바스크립트에서 제공하는 비동기를 처리 할 수 있게 도와주는 object, Class
state: pending(보류) --> fulfilled(성공) or rejected(거절)
Producer vs Consumer
Promise가 만들어진 순간,
executor이라는 함수가 바로 자동적으로 실행되기때문에 주의 할 것
let promise = new Promise ( function(resolve, reject) {
//executor (제작코드)
});
- executor의 인수 resolve, reject ; 자바스크립트에서 제공하는 콜백
- executor는 자동으로 실행이되는데,
처리가 끝나면 처리성공여부에 따라 resolve, reject를 호출
- resolve나 reject 중 하나는 반드시 호출 할 것
promise라는 Producer _제작코드 생성
Consumers는 then, catch(후속 처리 메서드), finally를 통해 값을 받아올 수 있음 _소비코드
.then: Promise가 정상적으로 잘 수행이 되어서
마지막에 최종적으로 resolve (callback함수) 를 통해 전달한 값이 then의 파라미터로 전달.
+ then은 값을 전달해도 되지만, 또 다른 Promise를 전달해 줄 수도 있다. (promise chaining)
then 성공한 값, catch 실패한 에러를 받아와서 원하는 방식으로 각자 처리를 해준다.
.finally의 경우, 성공 실패와 상관없이 마지막에 호출되어짐 (인자X)