问题描述
我使用 angular/fire valueChanges() 获取文档
const countries: Observable<any> = this.AngularFireStorage
.doc('country/country')
.valueChanges()
如果添加管道(tap(x => console.log(x))。它会记录
{ jp: {id: jp},us: {id: us}}
我想要的是添加 pipe(tap(x => console.log(x)) 并获取
{id: jp}
{id: us}
如何将国家:Observable
解决方法
代替pipe(tap(x => console.log(x))
写:
pipe(tap(x =>
const result = [];
Object.keys(x).forEach(key => result.push(x[key]));
console.log(result);
))
,
您可以使用 Object.values
将对象的值转换为数组。您可以使用三种常见的高阶运算符(switchMap
、mergeMap
、concatMap
)中的任何一种将该数组转换为值流。
可能的样子:
const countries: Observable<any> = this.AngularFireStorage
.doc('country/country').valueChanges().pipe(
concatMap(Object.values),tap(console.log)
)