function promiseFunc(){
return new Promise(function(res, rej)
{// Doing something!
res(1);
});
}
async function asyncFunc(){
console.log("2");
const res = await promiseFunc(); //여기서 asyncFunction()함수는 blocking 상태가 된다.
console.log(res); // 고로, console.log(res)는 실행을 미루고, 17줄의 console.log(4)
} //를 실행을 한다.
// 그러다가 promiseFunc()실행이 완료가 되면, 그때서야
// console.log(res)가 실행이 되고, 함수가 종료된다.
// 이 이하가 main() 부분이라고 생각하면 된다.
console.log("3");
asyncFunc();
console.log("4");
Javascript 비동기 함수의 동작원리 (feat. EventLoop) - 호롤리한 하루 (gruuuuu.github.io)
위 사이트에 들어 가면, 비동기 함수가 어떻게 동작하는지 애니메이션으로 잘 표현이 돼 있다.
비동기 함수를 만나면 실행의 흐름이 어떻게 되는지를 확인을 하라.!
'CS 잡지식' 카테고리의 다른 글
비동기/동기 + blocking/non-blocking(최종본) (0) | 2023.06.28 |
---|---|
CallBack함수(feat. 비동기 처리의 [동기화] ) (0) | 2023.06.28 |
@Tailable(feat.SSE Protocol...) (0) | 2023.06.26 |
Netty 서버(feat. 단일 스레드 이벤트 루프, 비동기,스프링은 비동기/Blocking..) (0) | 2023.06.26 |
MongoDB의 장점(Feat. NoSQL...) (0) | 2023.06.26 |