为什么我不能在FirebaseListObservable上调用toArray()?

时间:2017-06-22 01:18:48

标签: firebase rxjs observable angularfire2

在离子项目中,我有:

import { AngularFireDatabase, FirebaseListObservable} from 'angularfire2/database';

和一个带有字段的类:

songs: FirebaseListObservable<any>;

因此,代码行:

this.songs = db.list('/songs');

有效并且允许我放线:

<button ion-button ouline *ngFor="let song of songs | async">

在我的HTML中没有问题。

现在,FirebaseListObservable扩展了RxJS Observablesource)。 此外,Observable有一个方法toArray()。但是,当我运行我的项目时,我看到了:

Typescript Error
Property 'toArray' does not exist on type 'FirebaseListObservable<any>'.

这是为什么?还有另一种方法可以从songs观察到的数组得到一个数组吗?

1 个答案:

答案 0 :(得分:1)

我不确定为什么toArray()无法正常工作,但我可以建议你从数据库中获取所需的数组。(我通常会在没有数据的情况下执行此操作能够监听数据库的任何变化 - 比如Observable会这样做:

this.db.list('/songs')
.first().toPromise()
.then(response => {
  //code to handle the response - in this case its a list

  This.items = response;
})
.catch(error => { //error code here });

不要忘记先导入rxjs和导入

我真的希望它符合您的愿望并帮助您:)