Promise
2022. 2. 6. 20:20ㆍProgramming Language/JavaScript(Node.js)
생성 즉시 메인스레드에서 executor(생성자에 전달되는 함수)가 실행되고 실행이 끝나고 promise 객체가 리턴되며 .then으로 등록한 콜백은 콜스텍이 완료되어야 호출된다.
- Promise Chaining
then이나 catch 메소드는 전달된 함수가 리턴한 프로미스나 리턴값으로 resolve 하는 새 프로미스를 리턴하므로 연속해서 then을 호출하는 것이 가능하다. - 에러(reject) 처리
executor(프로미스 시작 함수)나 콜백에서 reject 호출 또는 에러가 던져질 경우 체인을 타고 내려가다가 가장 가까운 catch문에서 처리되고 그 catch문 다음 체인부터 시작한다. - async & await
- async
함수 앞에 async를 붙이면 해당 함수를 promise로 바꿔 promise 객체를 리턴하고 리턴값으로 resolve되며, 에러 객체는 reject로 처리된다. - await
async 함수 내부에서만 사용 가능하며 해당 promise 객체가 끝날 때까지 기다려 결과값을 가져온다.
- async
Reference
https://velog.io/@coin46/비동기를-처리하는-콜백-Promise-asyncawait
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://www.youtube.com/watch?v=JB_yU6Oe2eE&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=12&t=7s
https://www.youtube.com/watch?v=aoQSOZfz3vQ&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=13
'Programming Language > JavaScript(Node.js)' 카테고리의 다른 글
Prototype과 상속 (0) | 2022.02.06 |
---|---|
[Node.js] socket.io - namespace, room 개념 정리 (0) | 2022.02.06 |
CORS(Cross Origin Resource Sharing, 교차 출처 리소스 공유) (0) | 2022.01.16 |
JS엔진과 eventloop (0) | 2022.01.16 |
모듈시스템(Module System, import/export) (0) | 2022.01.14 |