자바스크립트는 한 줄 실행하고 또 다음 줄 실행하는 동기 언어입니다.
하지만 생각해보면 콜백 함수를 실행하는 비동기 코드를 자주 사용했습니다.
이것은 어떻게 된 걸까요?
setTimeout(() => {
console.log(1);
}, 1000);
console.log(2);
// 2
// 1
<aside> 💡 비동기 코드를 작성하기 위해서 자바스크립트 이외의 도움을 받습니다!
</aside>
위에 setTimeout
도 보면 사실 자바스크립트의 부분이 아닙니다.
브라우저에서 사용을 한다면 브라우저 api를 사용하는 것이며 (window object),
Node 에서 사용한다면 Node api를 사용하는 것입니다 (global object).
<aside> 💡 결국, 자바스크립트는 비동기처럼 사용할 수 있지만, 결국은 다른 것의 도움을 받아서 비동기처럼 사용할 수 있습니다.
</aside>