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

为什么我不能在FirebaseListObservable上调用toArray()?,firebase,rxjs,observable,angularfire2,Firebase,Rxjs,Observable,Angularfire2,在爱奥尼亚项目中,我有: 从“angularfire2/数据库”导入{AngularFireDatabase,FirebaseListObservable} 和一个带有字段的类: 歌曲:FirebaseListObservable)。 此外,Observable还有一种方法。但是,当我运行我的项目时,我看到: Typescript Error Property 'toArray' does not exist on type 'FirebaseListObservable<any>'

在爱奥尼亚项目中,我有:

从“angularfire2/数据库”导入{AngularFireDatabase,FirebaseListObservable}

和一个带有字段的类:

歌曲:FirebaseListObservable)。
此外,
Observable
还有一种方法。但是,当我运行我的项目时,我看到:

Typescript Error
Property 'toArray' does not exist on type 'FirebaseListObservable<any>'.
Typescript错误
类型“FirebaseListObservable”上不存在属性“toArray”。

为什么会这样?有没有其他方法可以从
歌曲
观察到的内容中获取数组?

我真的不知道为什么
toArray()
不起作用,但我可以建议您一种从DB中获取所需数组的方法。(我通常只需要数组,而不能像Observable那样监听DB的任何变化。):

别忘了先导入
rxjs
,然后再编程


我真的希望它能满足您的愿望并对您有所帮助:)

AngularFire2不完整地导入RxJS,也不使用修补
可观察的
原型的导入。您需要自己将
原型补丁导入阵列。请参阅。我添加了行
import'rxjs/add/operator/toArray;'
添加到我的代码中,但随后看到此错误:
类型“Observable”不可分配给类型“any[]”。类型“Observable”中缺少属性“length”。
。谢谢,你能告诉我应该在
//代码中添加什么来处理响应-在这种情况下,它是一个列表
?哦,我理解-如果我想,我可以将该部分留空,并且
这个。项目
仍然是我想要的列表。如果我这样做
console.log(响应)
在该匿名函数中,然后它显示我想要的数组,但是
这个。items
不是我想要的。所以我试着把
var数据在该代码之上,然后分配
数据=响应在函数内部,但这也不起作用。如何将
respond
分配给另一个变量?您可以尝试将响应分配给
this.items
。我将编辑我的答案,告诉你我的意思。好的,非常感谢。这是可行的,但因为它不会立即将
this.items
更改为
response
,如果我尝试使用
this.items
执行某些操作,我不知道它是否具有旧值或新值。我如何保证
this.items
在我处理它时得到更新?或者,对于评论部分来说,这是一个过于复杂的问题,而且没有完整的背景?
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 });