JavaScript 및 그 파생 언어들인 TypeScript와 같은 언어에서, 비동기 작업을 처리하기 위해 setTimeout()
함수를 자주 사용합니다. 특히 반복적인 작업을 수행해야 할 때에는 이 함수가 유용하게 활용됩니다. 이번 블로그에서는 TypeScript에서 setTimeout()
함수를 반복문과 어떻게 조합하여 사용하는지에 대해 알아보겠습니다.
1. 반복문과 setTimeout() 함수
일반적으로 JavaScript 및 TypeScript에서 반복문은 동기적으로 동작하기 때문에, 반복되는 작업을 순차적으로 수행합니다. 그러나 setTimeout()
함수를 통해 비동기적으로 작업을 처리할 수 있으므로, 이 함수를 활용하면 반복문 내에서 일정 시간 지연 후에 작업을 실행할 수 있습니다.
예를 들어, 아래의 TypeScript 코드는 setTimeout()
함수를 활용하여 반복문 내에서 작업을 비동기적으로 수행하는 예시입니다.
for (let i = 0; i < 5; i++) {
setTimeout(() => {
console.log(i);
}, 1000 * i);
}
위 코드는 0부터 4까지의 숫자를 1초 간격으로 출력합니다. 반복문 내에서 setTimeout()
함수를 사용하면, 각 반복에서의 실행이 일정 시간 간격으로 발생하게 됩니다.
2. 주의사항
반복문 내에서 setTimeout()
함수를 활용할 때에는 클로저(closure)에 주의해야 합니다. 반복문에서 변수를 사용할 경우, 해당 변수가 setTimeout()
함수에 전달될 때의 값이 아닌, 마지막 반복의 값이 사용될 수 있습니다. 따라서, 반복문 내에서 setTimeout()
함수를 사용할 때에는 클로저로 인한 문제를 방지하기 위해 적절한 방법으로 변수를 처리해주어야 합니다.
3. 결론
TypeScript에서 setTimeout()
함수를 반복문과 조합하여 사용하면, 비동기적인 작업을 일정 시간 간격으로 수행할 수 있습니다. 이를 통해 특정 작업을 일정 주기로 반복하는 등의 기능을 구현할 수 있습니다.
setTimeout()
함수의 조합 사용 시에는 클로저 문제에 유의하고, 적절한 변수 처리를 통해 원하는 동작을 이끌어내는 것이 중요합니다.
이상으로 TypeScript에서 반복문과 setTimeout()
함수의 조합에 대해 알아보았습니다.
참고 문헌:
- Mozilla Developer Network. “WindowOrWorkerGlobalScope.setTimeout()”. https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
- Mozilla Developer Network. “Using closures in JavaScript”. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures