使用Observable的最后一个元素

时间:2016-12-02 11:04:09

标签: angular firebase firebase-realtime-database rxjs

我有一个Observable从Firebase获取一些数据(使用AngularFire2),类似这样(我不需要更改流,只需要最后一个):

this.items = this.af.database.list('/items').take(1);

然后(在数据到达时通常调用的另一个函数中)我想处理结果,例如:

this.items.last().do(items => {
  console.log('items from server',items);
});

但是这不起作用(它不会在控制台日志中产生任何结果)。

如何使用Observable的最新结果?

2 个答案:

答案 0 :(得分:3)

您的observable很冷(没有订阅),您需要添加一个:

this.items.last().do(items => {
  console.log('items from server',items);
}).subscribe();

甚至更好,将do替换为subscribe

答案 1 :(得分:0)

您必须订阅您的观察。此外,你的take(1)只会获取第一项。我假设你的“/ items”中有多个项目。

Here是关于可观察操作如何运作的绝佳网站。