해결된 질문
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();
2022. 02. 17. 20:29
답변 감사합니다 ! 속이 다 시원하네요 좋은 저녁 보내세요~:)