2015년 2월 26일 목요일

[난해한 Javascript 개념] async caller와 callee간 callback을 통한 결과 전달 방식

async 함수를 호출하고 응답을 받기 위해 asynchronous function인 callback을 argument로 넘기고 그 function에서는 결과를 처리하는 로직이 담긴다.
이해하기 어려운 아래 코드를 이해함으로써 async function간의 메시지 전달을 하는 방식에 대한 개념을 잡아보자.


FileObject.file_exists function을 실행하고, 그 결과를 출력하는 function이다.

일반적인 synchronous flow라면 다음과 같이 수행할 것이다.


하지만, asynchronous flow에서 file_exist는 즉시 return하고, 결과는 나중에 알려줘야 하고, foo()함수는 그 결과를 나중에 처리할 수 있어야 한다.
그렇게 하기 위해 async caller와 callee는 callback을 통해 그 결과를 전달한다.

아래가 맨 위 코드와 구조가 같다.

댓글 없음: