【发布时间】:2020-10-24 00:27:30
【问题描述】:
我的服务返回带有事件和计数属性的对象。现在我需要做两个请求。首先获取事件,然后获取事件计数。我想在模板中的组件和异步管道中使用 Observables。我知道如何通过订阅组件中的服务来实现它,但我想了解如何通过一个请求将这两个事件映射并计数到一个可观察对象。我应该使用什么 RxJs 运算符?
import { Component, OnInit } from '@angular/core';
import { Event } from '../event.model';
import { Observable } from 'rxjs';
import { EventsService } from '../events.service';
import { first, map, take } from 'rxjs/operators';
@Component({
selector: 'app-events-list',
templateUrl: './events-list.component.html',
styleUrls: ['./events-list.component.css']
})
export class EventsListComponent implements OnInit {
events: Event[];
a$: Observable<Event[]>;
total$: Observable<number>;
pageSize: number = 100;
currentPage: number = 1;
constructor(private eventsService: EventsService) { }
ngOnInit(): void {
this.a$ = this.eventsService.getEvents(this.pageSize, this.currentPage).pipe(
map(results => results.events)
);
this.total$ = this.eventsService.getEvents(this.pageSize, this.currentPage).pipe(
map(results => results.count)
);
}
}
【问题讨论】: