Promise

2022. 2. 6. 20:20Programming 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 객체가 끝날 때까지 기다려 결과값을 가져온다.

 

 

 

 

 

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