С помощью этого кода, когда я снова прокручиваю вызов api, и он извлекает как предыдущие данные, так и новые данные и объединяется вместе. Но я хочу только добавить новые наблюдаемые данные к существующему наблюдаемому --- с каждой прокруткой нового наблюдаемого данные, которые будут добавлены при увеличении страницы.
onSearchOrder() {
this.orders$ = this.getOrderData(this.page, this.limitOrder).pipe(
map(res => res),
catchError(error => throwError(error))
)
}
getOrderData(page, limitOrder): Observable<any> {
this.orderApiData(page, limitOrder)
}
orderApiData(params, page, limit) {
let orderurl = `${xx}/xx/xx?page=${page}&limit=${limit}`;
let headers = new Headers();
headers.append("Accept", "application/json");
let options = new RequestOptions({ headers: headers });
return this.http.post(orderurl, params, options)
.pipe(map(res => JSON.parse(res['_body']),
catchError(err => {
this.errorMessage = err.message;
return EMPTY
}))
)
}
doInfinite(infiniteScroll) {
this.page = this.page + 1;
setTimeout(() => {
this.orders$ = combineLatest(this.orders$, this.getOrderData(this.page, this.limitOrder)).pipe(
map(([firstResult, secondResult]) => {
return [].concat(firstResult).concat(secondResult)
})
);
console.log('Async operation has ended');
infiniteScroll.complete();
}, 1000);
}