Я загружаю данные через HttpClient и публикую их как BehaviourSubject:
export interface Car {
id:number;
make: string;
status: number;
}
В службе я загружаю данные через конечную точку API:
private cars = new BehaviorSubject<Car[]>([]);
constructor( private http: HttpClient) {
this.loadCars();
}
loadCars() {
this.http.get<Car[]>('/api/cars')
.subscribe((cars) => this.cars.next(cars));
}
getFilteredCars() {
return this.cars.asObservable()
.pipe(
map( (cars) => cars.filter( car => car.status === 1)
)
);
}
Как видите, я хочуполучить все автомобили, которые имеют статус, равный 1. Когда я вызываю это из своего компонента, я ничего не получаю:
Component
cars: Observable<Car[]>;
constructor(private carService: CarService) {
this.cars = carService.getFilteredCars();
}
Я получаю нефильтрованные данные без проблем. Если я возвращаю нефильтрованный BehaviourSubject:
getFilteredCars() {
return this.cars.asObservable();
}
Что я делаю не так?