[typescript] 프로미스 체이닝에서 중복된 코드를 피하는 방법은?
예를 들어, 다음과 같이 중복된 코드가 있는 프로미스 체이닝이 있다고 가정해 봅시다.
getData()
.then((result1) => {
// 중복 코드
console.log(result1);
return processData(result1);
})
.then((result2) => {
// 중복 코드
console.log(result2);
return processMoreData(result2);
})
.then((result3) => {
// 중복 코드
console.log(result3);
});
위 코드에서 “중복 코드” 부분을 함수로 추출하여 중복을 제거할 수 있습니다.
function logAndReturnData(data: any) {
console.log(data);
return data;
}
getData()
.then(logAndReturnData)
.then(processData)
.then(logAndReturnData)
.then(processMoreData)
.then(logAndReturnData);
이렇게 하면 코드가 더 간결해지고 가독성이 좋아지며, 유지보수가 쉬워집니다.
또 다른 방법으로는 async/await
를 사용하여 프로미스 체이닝을 깔끔하게 표현하는 방법도 있습니다. 이를 통해 중복을 피하고 가독성을 높일 수 있습니다.
참고문헌:
- https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
- https://tylermcginnis.com/async-javascript-from-callbacks-to-promises-to-async-await/#using-asyncawait-for-promises