Если вы хотите фильтровать рабочие заказы, поступающие с сервера, с помощью фильтра rxjs, вам нужно будет превратить массив рабочих заказов в наблюдаемые рабочие заказы, например.
export class BackendServices {
private BASE_URL ='http://localhost:3000/backend';
constructor(private http: HttpClient) {}
getWorkOrders(){
return this.http.get(this.BASE_URL + '/getworkorders/')
.pipe(map((data) => Observable.from(data));
}
}
private woSubject = new BehaviorSubject<IWorkOrders[]>([]);
getWorkOrders() {
this.bs.getWorkOrders()
.pipe(
filter(data => data.timestamp > 123456786 ),
toArray()
)
.subscribe((data: any) =>
this.woSubject.next(data),
);
}
Альтернативой является фильтрация массива на карте с использованием стандартного фильтра массива, например.
export class BackendServices {
private BASE_URL ='http://localhost:3000/backend';
constructor(private http: HttpClient) {}
getWorkOrders(){
return this.http.get(this.BASE_URL + '/getworkorders/');
}
}
private woSubject = new BehaviorSubject<IWorkOrders[]>([]);
getWorkOrders() {
this.bs.getWorkOrders()
.pipe(map(data => data.filter(workorder => workrder.timestamp > 123456786) )
.subscribe((data: any) =>
this.woSubject.next(data),
);
}
Один вопрос, который я хотел бы задать, заключается в том, почему вы выдвигаете результатнаблюдаемая подписка на предмет поведения?Как правило, если вы помещаете результаты из подписки в другую наблюдаемую, вы можете достичь того же, комбинируя наблюдаемые вместо