Я ищу более удобочитаемое решение, чем у меня.
Мне нужно: 1) Получить продукты из API.Они представляют собой массив объектов.2) Отфильтруйте эти продукты на основе категории и т. Д. 3) Разбейте страницы на страницы и верните постраничную версию этих продуктов.
ngOnInit() {
//This gets the products from the API
this.drinkSubscription = this.drinkService.getAllDrinks().subscribe(drinks => {
//Save products without pagination for other purposes
this.allDrinks = drinks;
//Get the parameter to filter products
this.paramSubscription = this.route.params.subscribe((params: Params) => {
//Filter the products and return a filtered array
const filteredDrinks = this.filterService.filter(drinks, params['filter'], params['name']);
//Sort products based on the selection
this.sorterSubscription = this.sorter.initialize(filteredDrinks).subscribe(sortedDrinks => {
//Create a pager that holds the paginated drinks in a property
this.pagerSubscription = this.pagerService.initializePaginatedItems(sortedDrinks, 10, 5)
.subscribe(pager => {
this.pager = pager;
this.paginatedDrinks = pager.paginatedItems;
});
});
});
});
}
Сортировщик и разбиение на страницы являются объектами BehaviorSubjects, чтобы я мог добавить их далее ()но я не уверен в них ... Вы можете видеть, что уровень отступа довольно высок, и мне было интересно, есть ли способ с RxJS получить те же результаты в более читабельном виде.