연재몬 2022. 2. 27. 19:38

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 중 하나는 반드시 호출 할 것 

 

성공한 경우, producer
실패한 경우, producer

 

promise라는 Producer _제작코드 생성 


Consumers는 then, catch(후속 처리 메서드), finally를 통해 값을 받아올 수 있음 _소비코드 

.then: Promise가 정상적으로 잘 수행이 되어서

마지막에 최종적으로 resolve (callback함수) 를 통해 전달한 값이 then의 파라미터로 전달.

+ then은 값을 전달해도 되지만, 또 다른 Promise를 전달해 줄 수도 있다. (promise chaining)

 

 

then 성공한 값, catch 실패한 에러를 받아와서 원하는 방식으로 각자 처리를 해준다.

 

.finally의 경우, 성공 실패와 상관없이 마지막에 호출되어짐 (인자X)

 

then이 또 다른 promise를 전달한 예시