[javascript] Lodash의 Promises 관련 함수들과 사용 예제

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의 공식 문서를 참고해주세요.