Promise를 활용한 검색 결과 정렬 기능 구현

이번 포스트에서는 JavaScript의 Promise를 활용하여 검색 결과를 정렬하는 기능을 구현해 보겠습니다.

문제 정의

검색 결과가 있는 배열이 주어졌을 때, 이 배열을 특정 기준에 따라 정렬해야 합니다. 예를 들어, 사용자가 “가격 순”으로 검색 결과를 정렬하고자 할 경우, 가격을 기준으로 배열을 정렬해야 합니다.

해결 방법

  1. Promise를 생성하여 비동기적으로 작업을 수행하는 함수를 만듭니다. 이 함수는 검색 결과를 받아와 정렬 작업을 수행합니다.
    function sortSearchResults(results) {
      return new Promise((resolve, reject) => {
        // 정렬 작업 수행
        // resolve()를 호출하여 정렬된 결과 반환
        // reject()를 호출하여 오류 처리
      });
    }
    
  2. Promise 내에서 정렬 작업을 수행합니다. 이때, 비교 함수를 사용하여 배열을 정렬합니다. 예를 들어, 가격을 기준으로 오름차순으로 정렬하려면 다음과 같이 사용할 수 있습니다.
    function compareByPrice(a, b) {
      return a.price - b.price;
    }
    
  3. 정렬 작업이 완료되면 Promise를 이용하여 결과를 반환합니다. 정렬된 배열을 resolve()를 통해 반환하고, 오류가 발생할 경우 reject()를 통해 처리합니다.
    function sortSearchResults(results) {
      return new Promise((resolve, reject) => {
        try {
          const sortedResults = results.sort(compareByPrice);
          resolve(sortedResults);
        } catch (error) {
          reject(error);
        }
      });
    }
    
  4. 이제 sortSearchResults() 함수를 호출하여 검색 결과를 정렬할 수 있습니다. 이때, then() 메소드를 사용하여 정렬된 결과를 처리합니다.
    const searchResults = [...]; // 정렬할 검색 결과 배열
    sortSearchResults(searchResults)
      .then(sortedResults => {
        // 정렬된 결과 처리
      })
      .catch(error => {
        // 오류 처리
      });
    

마치며

JavaScript의 Promise를 활용하여 검색 결과를 정렬하는 기능을 구현하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 정렬 기능을 구현할 수 있으며, 비동기 작업을 효율적으로 처리할 수 있습니다. 코드를 실제로 실행하여 검색 결과를 정렬해 보세요!

#JavaScript #Promise #검색결과정렬