我遇到一些问题,了解如何处理从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 Collection中时也会被调用。
相反,箭头函数仅调用一次,并给出一个带有所有对象的数组。当将新对象添加到集合中时,再次调用箭头函数,然后再次通过整个集合,而不是仅新对象。
我在这里做错了吗?就我而言,我非常希望收集中的每个项目都调用箭头功能。
有没有办法实现这一目标?
这确实取决于您想做的事情,但您可以映射。
observable.subscribe(x => {
x.map(y => console.log(y));
});