mergeMap
бесполезен в вашем случае, потому что он был создан для сглаживания наблюдаемых.
Так что map
оператор должен делать всю работу.
getByTag(tag:string) {
return this.http.get(this.URL + '/get/listings/', { headers })
.pipe(
map((res: Listings) => res.items),
map((list: any[]) => {
return list.map(sublist => sublist.map(item => {...item, inserted: new Date()}));
})
);
}
Обновление
Вы можете сгладить массив, используя reduce
:
map((res: Listings) => res.items.reduce(((arr, list) => arr.concat(list), [])),
map((list: any[]) => {
return list.map(item => {...item, inserted: new Date()});
})
Для цепочки вы можете использовать do
/ tap
:
tap((list: any[]) => {
list.forEach(item => {
exportToFirebase(item)
});
})
Таким образом, фактическое выполнение exportToFirebase
на вашей стороне, IKD, какая сигнатура этой функции, если она возвращает Observable или что-то еще