[typescript] 화살표 함수와 익명 함수를 사용한 비동기 처리 방식 비교
자바스크립트 및 TypeScript에서 비동기 처리는 프로미스 (Promise)나 async/await를 사용하여 구현할 수 있습니다. 화살표 함수와 익명 함수는 콜백 함수를 정의할 때 주로 사용되며, 이 둘을 사용하여 비동기 처리를 구현하는 방식을 비교해 보겠습니다.
익명 함수를 사용한 비동기 처리
// 익명 함수를 사용한 비동기 처리 예제
function asyncOperation(callback: () => void) {
setTimeout(() => {
console.log('비동기 작업 완료');
callback();
}, 1000);
}
function startAsyncOperation() {
console.log('비동기 작업 시작');
asyncOperation(() => {
console.log('콜백 함수 실행');
});
}
startAsyncOperation();
위 예제에서 asyncOperation
함수는 콜백 함수를 매개변수로 받아 비동기 작업을 수행합니다. 익명 함수를 사용하여 콜백 함수를 정의하고 전달합니다.
화살표 함수를 사용한 비동기 처리
// 화살표 함수를 사용한 비동기 처리 예제
const asyncOperation = (callback: () => void) => {
setTimeout(() => {
console.log('비동기 작업 완료');
callback();
}, 1000);
}
const startAsyncOperation = () => {
console.log('비동기 작업 시작');
asyncOperation(() => {
console.log('콜백 함수 실행');
});
}
startAsyncOperation();
위 예제에서 asyncOperation
함수 및 startAsyncOperation
함수는 화살표 함수를 사용하여 정의되었습니다. 익명 함수와 동일한 역할을 수행하지만, 화살표 함수는 함수를 간결하게 정의할 수 있는 장점이 있습니다.
화살표 함수와 익명 함수의 비교
화살표 함수는 코드를 간결하게 작성할 수 있으며, 함수 내부에서 this
를 가리키는 방식이 익명 함수와 다릅니다. 따라서 this
가 중요한 상황에서는 주의하여 사용하여야 합니다. 반면에 익명 함수는 함수 내에서 this
를 동적으로 바인딩하여 사용할 수 있습니다.
언제나 화살표 함수가 익명 함수보다 나은 것은 아니며, 상황에 따라 적절한 함수를 선택하여야 합니다.
이처럼 화살표 함수와 익명 함수를 사용하여 비동기 처리를 구현할 수 있으며, 각각의 특징을 고려하여 선택하여야 합니다.
결론
화살표 함수와 익명 함수는 각각의 장단점을 가지고 있으며, 비동기 처리에 적합하게 사용될 수 있습니다. 함수 선택 시 this
의 바인딩과 코드 간결성 등을 고려하여 적절히 활용하여야 합니다.