더북(TheBook)

다음과 같이 첫 번째 인수에 넣는 함수를 외부에서 가져올 수도 있습니다.

const callback = () => {
  console.log('2초 후에 실행됩니다.');
} 
setTimeout(callback, 2000);

setTimeout() 함수를 비동기라고 하는 이유는 setTimeout() 뒤에 나오는 코드가 더 먼저 실행되기 때문입니다. 다음 코드는 얼핏 보면 콘솔에 1, (2초 기다리고) 2, 3 순서로 찍힐 것 같지만 실제로는 1, 3, (2초 기다리고) 2가 찍힙니다. 즉, 코드의 작성 순서와 실제 실행 순서가 다릅니다.

console.log(1);
setTimeout(() => {
  console.log(2);
}, 2000);
console.log(3); 
// 1, 3, 2
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.