[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
});
위 예제에서 asyncTask1
과 asyncTask2
는 각각 프로미스를 반환하는 비동기 작업을 나타내고 있습니다. 첫 번째 프로미스가 완료되면 .then()
을 사용하여 다음 작업을 체이닝할 수 있습니다. 두 번째 then()
블록에서는 첫 번째 작업의 결과를 사용하여 두 번째 작업을 실행하고 있습니다.
이러한 방식으로 then()
메소드를 사용하여 프로미스 체이닝을 구현할 수 있습니다.