[typescript] 비동기 작업의 결과를 다른 동기 작업에 전달하는 방법

비동기 작업을 수행할 때 종종 해당 작업의 결과를 받아와 다른 동기 작업에 전달해야 하는 상황이 발생합니다. 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을 통해 비동기 작업의 결과를 처리하고, 해당 결과를 다른 동기 작업에 전달하는 다양한 방법을 제공합니다. 개발자는 상황에 맞게 적절한 방법을 선택하여 비동기 작업을 효과적으로 처리할 수 있습니다.