Вы можете просто добавить toArray()
в конце своей трубы
this.list$ = this.service.getList()
.pipe(
mergeMap(response => response.items),
map(item => {
item.date = moment(item.date).format('YYYY-MM-DD').toString();
return item;
}),
toArray()
)
Что, вероятно, лучше, хотя бы немного реструктурировать ваш код, используйте оператор Observable map
вместо flatMap
(a.k.a. mergeMap
) и внутри него используйте метод Array map
для форматирования. Другими словами что-то вроде
pipe(
map(response => response.items.map(item => {
item.date = moment(item.date).format('YYYY-MM-DD').toString();
return item;
}))
)
Второй подход позволяет избежать развертывания массива (который в первом решении вы используете flatMap
) и последующего воссоздания массива или, по крайней мере, ограничивает эту логику в методе map
массива