비동기 작업을 수행할 때 종종 해당 작업의 결과를 받아와 다른 동기 작업에 전달해야 하는 상황이 발생합니다. TypeScript에서는 이를 수행하는 여러 가지 방법이 있습니다. 이번에는 Promise와 async/await을 사용하여 비동기 작업의 결과를 처리하고, 해당 결과를 다른 동기 작업에 전달하는 방법에 대해 알아보겠습니다.
1. Promise를 사용하여 비동기 작업 처리
Promise는 JavaScript에서 비동기 작업의 결과 또는 오류를 다룰 때 사용되는 객체입니다. 비동기 작업을 Promise로 감싸고, 해당 Promise에서 작업이 끝나면 then 메서드를 사용하여 결과를 받아와 다른 동기 작업에 전달할 수 있습니다.
아래는 Promise를 사용하여 비동기 작업의 결과를 처리하고, 해당 결과를 다른 동기 작업에 전달하는 예제 코드입니다.
function asyncOperation(): Promise<number> {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
setTimeout(() => {
resolve(10); // 비동기 작업이 완료되면 결과 전달
}, 1000);
});
}
asyncOperation().then((result) => {
console.log(`비동기 작업 결과: ${result}`);
// 해당 결과를 다른 동기 작업에 전달하여 처리
});
2. async/await를 사용한 처리
async/await를 사용하면 Promise를 더 간편하게 다룰 수 있습니다. async 키워드를 사용하여 비동기 함수를 선언하고, 해당 함수 내에서 await 키워드를 사용하여 Promise가 처리될 때까지 기다려 결과를 받아올 수 있습니다.
아래는 async/await를 사용하여 비동기 작업의 결과를 처리하고, 해당 결과를 다른 동기 작업에 전달하는 예제 코드입니다.
async function processAsyncOperation() {
const result = await asyncOperation();
console.log(`비동기 작업 결과: ${result}`);
// 해당 결과를 다른 동기 작업에 전달하여 처리
}
processAsyncOperation();
async/await를 사용하면 then 메서드를 사용하는 것보다 코드가 이해하기 쉽고 간결해집니다.
결론
TypeScript에서는 Promise와 async/await을 통해 비동기 작업의 결과를 처리하고, 해당 결과를 다른 동기 작업에 전달하는 다양한 방법을 제공합니다. 개발자는 상황에 맞게 적절한 방법을 선택하여 비동기 작업을 효과적으로 처리할 수 있습니다.