为什么我不能在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 });