[typescript] `.then()` 메소드를 사용하여 프로미스 체이닝을 어떻게 구현할 수 있나요?

프로미스 체이닝은 연속적으로 비동기 작업을 수행하고 각각의 작업이 완료된 이후에 다음 작업을 순차적으로 실행하는 방식입니다. 이를 구현하는 가장 간단한 방법은 then() 메소드를 사용하여 각 프로미스가 완료될 때 필요한 작업을 정의하는 것입니다.

다음은 TypeScript에서 then()을 사용하여 프로미스 체이닝을 구현하는 예제입니다.

function asyncTask1(): Promise<string> {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('Task 1 complete');
    }, 1000);
  });
}

function asyncTask2(result: string): Promise<string> {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(`${result}, Task 2 complete`);
    }, 1000);
  });
}

asyncTask1()
  .then((result) => {
    console.log(result); // Task 1 complete
    return asyncTask2(result);
  })
  .then((result) => {
    console.log(result); // Task 1 complete, Task 2 complete
  });

위 예제에서 asyncTask1asyncTask2는 각각 프로미스를 반환하는 비동기 작업을 나타내고 있습니다. 첫 번째 프로미스가 완료되면 .then()을 사용하여 다음 작업을 체이닝할 수 있습니다. 두 번째 then() 블록에서는 첫 번째 작업의 결과를 사용하여 두 번째 작업을 실행하고 있습니다.

이러한 방식으로 then() 메소드를 사용하여 프로미스 체이닝을 구현할 수 있습니다.