我在理解如何处理从angularfire 2可观察对象发出的对象流时遇到一些问题。
看看这个例子:
// create observable
var observalbe = Rx.Observable.range(1, 3);
// Prints out each item
var subscription = observalbe.subscribe(
x => console.log(x)
);
这将输出:
// 1
// 2
// 3
根据我的理解,这是我在订阅观察时所期望的行为。
现在我想使用angularfire 2订阅firebase上的实时数据库集合:
// af is an instance of AngularFire-Service that is injected in the constructor
var observable = af.database.list('/items');
observable.subscribe(
x => console.log(x)
);
我期待的是,我的箭头函数将被调用此集合中存在的每个对象,并且每次将新项目添加到firebase集合时也会调用它。
相反,箭头函数只调用一次,并给出一个包含所有对象的数组。将新对象添加到集合时,将再次调用箭头函数,并再次传递整个集合,而不是仅传递新对象。
我在这里做错了吗?在我的情况下,我非常希望为集合中的每个项目调用箭头函数。
有没有办法实现这个目标?
答案 0 :(得分:3)
这实际上取决于你想要做什么,但你可以映射它。
observable.subscribe(x => {
x.map(y => console.log(y));
});