Это совершенно разные вещи.Но я понимаю путаницу: они выглядят сопоставимыми, но то, что нужно делать, совсем другое.
Lodash: можно сравнить с Linq в .Net.Это все о навигации, комбинировании и управлении списками или перечислимыми вещами .
Rxjs: речь идет не о списках, а о событиях, которые происходят со временем .
На самом деле имеет смысл использовать их оба:
// every time filter criteria is updated on the GUI, this will emit a new set of filtercriteria
let filterCriteria$ = new BehaviorSubject<FilterCriteria>({});
// this gets the list of employees, but will also emit a new set of employees when there are any changes
let mostRecentListOfEmployees$: Observable<Employee[]> = this.apiService.GetEmployees();
// using combineLatest will make sure that the map operator is executed every time the criteria or the list is updated
let filteredEmployees$ = filterCriteria$.pipe(
combineLatest(mostRecentListOfEmployees$),
map(([filterCriteria, list]) => {
// this is pseudocode, not sure about the exact lodash syntax for filtering ...
return _.filter(list, filterCriteria);
})
)
Вы бы полагались на Rxjs для повторной фильтрации списка каждый раз, когда обновляются критерии фильтрации, и когда приходит новый набор сотрудников.через API.
Lodash будет использоваться для фактической фильтрации массива.
Ваш GUI подпишется на фильтр FilterEmployees $ observable.
Если этот подход кажется незнакомым, это то, что нужно Реактивное программирование : https://en.wikipedia.org/wiki/Reactive_programming