此函数由构造函数调用。有人可以向我深入解释它的作用吗?
initializeItems(){
this.travelList$ = this.plsdala.getTravelList()
.snapshotChanges()
.map(
changes => {
return changes.map(c=>({
key: c.payload.key, ...c.payload.val()
})).slice().reverse();
//to reverse order
});
}
答案 0 :(得分:9)
是火灾收集的现状。它返回一个Observable数据。 您可以在希望能够将元数据作为documentID获取时使用它,而不是使用例如valueChanges(),它返回仅包含保存在文档中的数据的Observable。它不包含元数据。
这意味着您通常会在需要元数据时使用valueChanges()来获取数据和snapshotChanges(),例如。删除或更新文件。
您的代码基本上获取文档的数据和元数据,并从中提取数据。然后它将数据反转为从集合的结尾到开头。
答案 1 :(得分:0)
由于该函数是异步的,因此在继续下面的其余代码之前,它不会等待完成。因此,console.log(travelArray)甚至在接收数据之前就运行。 (没有检查下面的语法错误)
let travelArray = [];
this.travelList$.subscribe(res => {
res.map(c => {
travelArray.push(c);
})
})
.subscribe((a: travelArray) => {
console.log(a);
}, error => {
});
答案 2 :(得分:-1)
将observable推入数组会做类似的事情。
let travelArray = [];
this.travelList$.subscribe(res => {
res.map(c => {
travelArray.push(c);
})
})
console.log(travelArray);