
비동기 처리는 함수의 실행을 다른 스레드나 프로세스에 위임하여, 함수의 실행이 완료되지 않은 상태에서도 다음 코드를 실행할 수 있도록 하는 기술입니다.
async function myFunc() {} 내부에서 setTimeout() 함수를 사용할 때, 비동기 처리가 작동하는 방식은 다음과 같습니다.
1. setTimeout() 함수는 함수의 실행을 일정 시간 뒤에 다른 스레드에 위임합니다.
2. setTimeout() 함수가 위임한 스레드는 setTimeout() 함수의 시간이 지난 후에 함수를 실행합니다.
3. 함수의 실행이 완료되지 않은 상태에서도 setTimeout() 함수가 위임한 스레드는 다음 코드를 실행할 수 있습니다.
4. async function myFunc() {} 내부에서 setTimeout() 함수를 사용하면, setTimeout() 함수가 위임한 스레드가 함수를 실행하는 동안, async function myFunc() {} 내부의 다른 코드를 실행할 수 있습니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
async function myFunc() {
console.log('1');
setTimeout(() => {
console.log('2');
}, 1000);
console.log('3');
}
myFunc();
이 코드를 실행하면, 다음 순서로 실행됩니다.
1. console.log('1');이 실행됩니다.
2. setTimeout() 함수가 위임한 스레드가 setTimeout() 함수의 시간을 기다립니다.
3. setTimeout() 함수의 시간이 지난 후, setTimeout() 함수가 위임한 스레드가 console.log('2');을 실행합니다.
4. console.log('3');이 실행됩니다.
이 예시를 통해, async function myFunc() {} 내부에서 setTimeout() 함수를 사용할 때, 비동기 처리가 작동하는 방식을 이해할 수 있습니다.
2025-05-09 04:07