프로미스 체이닝이란 하나 이상의 프로미스를 연결하여 비동기 작업을 순차적으로 처리하는 기법을 말합니다. 타입스크립트에서 이 기법은 프로미스를 반환하는 함수를 연속적으로 호출하여 작업을 연결하는 방식으로 구현됩니다.
기본적인 프로미스 체이닝
프로미스 체이닝은 then 메서드를 사용하여 구현됩니다. 각 then 메서드 호출은 이전 프로미스의 결과를 기다리고, 해당 결과를 바탕으로 새로운 비동기 작업을 수행합니다.
다음은 간단한 예제를 통해 프로미스 체이닝의 기본적인 모습을 확인해보겠습니다.
function performTaskA(): Promise<string> {
return new Promise((resolve) => {
setTimeout(() => {
resolve("Task A complete");
}, 1000);
});
}
function performTaskB(result: string): Promise<string> {
return new Promise((resolve) => {
setTimeout(() => {
resolve(result + " - Task B complete");
}, 500);
});
}
performTaskA()
.then((resultA) => performTaskB(resultA))
.then((finalResult) => {
console.log(finalResult); // 출력: "Task A complete - Task B complete"
});
위 예제에서 performTaskA
함수가 완료되면, 그 결과를 받아서 performTaskB
함수를 호출합니다. 그리고 performTaskB
함수가 완료되면 최종 결과를 출력합니다.
타입스크립트에서의 프로미스 체이닝
타입스크립트에서 프로미스 체이닝은 제네릭을 사용하여 각 단계의 결과 타입을 정확하게 추론합니다. 이를 통해 타입 안정성을 보장하면서 코드를 작성할 수 있습니다.
프로미스를 반환하는 함수가 여러 단계에 걸쳐 연속적으로 호출되는 경우, 타입스크립트는 이러한 체이닝 구조에서 각 단계의 결과 타입을 추론할 수 있게 됩니다.
프로미스 체이닝을 통해 코드를 읽기 쉽게 작성할 수 있고, 각 단계에서 발생할 수 있는 오류를 쉽게 처리할 수 있습니다.
이상으로 타입스크립트에서의 프로미스 체이닝에 대한 간략한 소개였습니다. 프로미스 체이닝을 통해 복잡한 비동기 작업을 보다 간단하게 처리할 수 있으며, 타입 안정성 또한 보장받을 수 있습니다.
더 자세한 내용은 MDN web docs 및 타입스크립트 공식 문서를 참고하시기 바랍니다.