Lodash는 유용한 자바스크립트 유틸리티 라이브러리로, Promise와 관련된 함수들을 제공합니다. 이번 포스트에서는 Lodash의 Promises 관련 함수들과 그들의 사용 예제를 살펴보겠습니다.
1. _.tap
함수
_.tap
함수는 체인 내부의 값을 사용하거나 변경하기 위해 사용됩니다. Promise를 받아 처리할 수 있도록 확장된 _.tap
함수는 가장 마지막의 체이닝 함수로 호출되며, 첫 번째 인자로 받은 Promise를 해결하고 원래 값을 반환합니다.
사용 예제:
const getUserData = () => {
return fetch('https://api.example.com/users')
.then(response => response.json())
.then(users => {
// 사용자 데이터를 처리하는 로직
// ...
return users;
});
};
const fetchData = async () => {
const result = await _.tap(Promise.resolve())
.then(() => {
// 로딩 스피너 표시
})
.then(getUserData)
.then(users => {
// 사용자 데이터를 처리하는 로직
// ...
return users;
})
.then(() => {
// 로딩 스피너 숨기기
});
console.log(result); // 사용자 데이터 출력
};
fetchData();
위 예제에서는 _.tap
함수를 사용하여 프로미스 체인 내부에서 로딩 스피너를 표시하고 숨기는 기능을 구현하였습니다.
2. _.spread
함수
_.spread
함수는 배열을 분해하여 함수의 인자로 전달하는데 사용됩니다. Promise를 받아 처리할 수 있도록 확장된 _.spread
함수는 함수를 반환하며, 그 함수는 첫 번째 인자로 받은 Promise를 해결한 값을 인자로 사용하는 함수입니다.
사용 예제:
const addNumbers = async (a, b) => {
const sum = await Promise.resolve(a + b);
console.log(sum);
};
const numbers = [2, 3];
Promise.resolve(numbers)
.then(_.spread(addNumbers));
위 예제에서는 _.spread
함수를 사용하여 배열 numbers
를 함수 addNumbers
의 인자로 전달하였습니다. 이를 통해 Promise에서 해결한 값을 함수의 인자로 사용할 수 있게 되었습니다.
결론
Lodash의 Promises 관련 함수들은 자바스크립트의 Promise 처리를 더욱 편리하게 해줍니다. _.tap
함수를 사용하면 체인 내에서 값을 사용하거나 변경하는 작업을 쉽게 처리할 수 있고, _.spread
함수를 사용하면 배열을 함수의 인자로 전달하는 작업을 간단하게 처리할 수 있습니다.
더 자세한 내용은 Lodash의 공식 문서를 참고해주세요.