더북(TheBook)

같은 파일을 세 번 읽었습니다. 실행하기 전에 콘솔 결과를 예측해보세요.

콘솔

$ node async
시작
끝
2번 저를 여러 번 읽어보세요.
3번 저를 여러 번 읽어보세요.
1번 저를 여러 번 읽어보세요.

시작과 끝을 제외하고는 결과의 순서가 이 책과 다를 수도 있습니다. 괜찮습니다. 원래 의도된 바이기 때문입니다. 결과는 반복 실행할 때마다 달라집니다.

비동기 메서드들은 백그라운드에 해당 파일을 읽으라고만 요청하고 다음 작업으로 넘어갑니다. 따라서 파일 읽기 요청만 세 번을 보내고 console.log('끝')을 찍습니다. 나중에 읽기가 완료되면 백그라운드가 다시 메인 스레드에 알립니다. 메인 스레드는 그제서야 등록된 콜백 함수를 실행합니다.