인프런 커뮤니티 질문&답변

박재영님의 프로필 이미지

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+

await 원리 질문 드립니다

해결된 질문

22.02.17 18:14 작성

·

259

2

항상 답변 해주셔서 감사합니다

async함수에서 await 키워드의 원리가 제가 생각한 것이 맞는지 궁금합니다. 

1. 전역 실행 컨택스트 생성후 콜스택 푸시 

2. foo 함수 실행 -> foo 실행 컨택스트 생성 후 콜스택 푸시 

3. delay1000 함수 실헹 

4. 프로미스 생성자 함수가 전달받은 콜백함수를 web api에 넘기고 프로미스 객체를 반환하고 종료

5. foo 실행 컨텍스트에서 await 키워드로 인해 프로미스가 settled 상태가 될 때까지 대기 

6. webapi에서 콜백함수 처리 후 프로미스 상태 fulfilled로 변경 

7. 런타임 이어서 진행

const delay1000 = async a => new Promise(resolve => 
  setTimeout(() => resolve(a), 1000));

const foo = async () => {
  const bar = await delay1000(1111);
  console.log(bar);
}

foo();

답변 1

1

유인동님의 프로필 이미지
유인동
지식공유자

2022. 02. 17. 19:41

네 좋아보이는데요? :)

박재영님의 프로필 이미지
박재영
질문자

2022. 02. 17. 20:29

답변 감사합니다 ! 속이 다 시원하네요 좋은 저녁 보내세요~:)