[javascript] 프로미스를 활용한 데이터 필터링 및 정렬
데이터 필터링
프로미스를 사용하여 데이터를 필터링하는 방법은 간단합니다. 우선 비동기로 데이터를 가져오는 함수가 있다고 가정해보겠습니다. 해당 함수는 Promise 객체를 반환합니다. 이 함수를 사용하여 데이터를 가져온 후에 원하는 조건에 맞게 필터링할 수 있습니다. 예를 들어, “users”라는 배열에서 나이가 30세 이상인 유저들만 필터링해보겠습니다.
function getUsers() {
return new Promise((resolve, reject) => {
// 비동기로 데이터를 가져오는 로직
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
resolve(users);
});
}
getUsers()
.then(users => {
const filteredUsers = users.filter(user => user.age >= 30);
console.log(filteredUsers);
})
.catch(error => console.error(error));
위 코드에서 getUsers
함수는 Promise 객체를 반환하고, 해당 Promise가 fullfilled 되었을 때 then
메서드 내부의 로직이 실행됩니다. then
메서드에서는 가져온 유저 데이터를 필터링하여 나이가 30세 이상인 유저들만 출력합니다.
데이터 정렬
데이터를 정렬하는 작업도 프로미스를 활용하여 비동기로 처리할 수 있습니다. 이번에는 “products”라는 배열을 가지고 상품들을 가격순으로 정렬하는 예제를 보여드리겠습니다.
function getProducts() {
return new Promise((resolve, reject) => {
// 비동기로 데이터를 가져오는 로직
const products = [
{ name: 'Apple', price: 1000 },
{ name: 'Banana', price: 500 },
{ name: 'Orange', price: 800 }
];
resolve(products);
});
}
getProducts()
.then(products => {
const sortedProducts = products.sort((a, b) => a.price - b.price);
console.log(sortedProducts);
})
.catch(error => console.error(error));
위 코드에서 getProducts
함수는 Promise 객체를 반환하고, 해당 Promise가 fullfilled 되었을 때 then
메서드 내부의 로직이 실행됩니다. then
메서드에서는 가져온 상품 데이터를 가격에 따라 오름차순으로 정렬하여 출력합니다.
프로미스를 활용하여 데이터 필터링 및 정렬 작업을 비동기로 처리할 수 있습니다. 이를 활용하여 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 자바스크립트에서 프로미스를 사용해보세요!