【发布时间】:2016-11-04 14:07:17
【问题描述】:
RxJs、Typescript 1.8 和 Angular2。
我有一个返回 Observable 的函数。 Observable 调用一个 Web API,它返回一个对象序列。这是我的实际代码:
getClients(): Observable<IClient[]> {
return this.backendService.get(`tracker/clients`)
.map((resp: {}[]) => { return _.map(resp, createClientFromJson)})
.map((clients: IClient[]) => {
this.logger.debug(`Created ${clients.length} Clients from reply`);
return clients;
});
}
对backendService.get() 的调用最终调用http.get(),它返回一个Observable。
我的代码使用 Observable 中的事件:
loadClients() {
this.getClients().subscribe((clients: IClient[]): void => {
this.clients = this.clients.concat(clients);
this.logger.debug(`Got ${clients.length} clients, now have ${this.clients.length}.`);
})
}
这一切都有效。然而,我的 Observable 发出一次 - 带有 N 个元素的序列。如果 Web API 返回一个包含 20 项的序列,则只有 1 个事件将发送到 loadClients()。
我怎样才能使序列中的每个项目都自己发出,而不是一次发出整个序列?
在我的程序的某些部分,我需要整个序列。在其他情况下,我需要寻找一个符合某些标准的特定元素。
【问题讨论】:
标签: angular typescript rxjs observable