Используйте оператор map
вместе с деконструкцией объекта для получения кратчайшего результата:
this.http.get('https:url-to-guest-events').pipe(
map(({start, end, title}) => ({
start: new Date(start),
end: new Date(end),
title: title,
draggable: true,
resizable: true,
}))
)
.subscribe(
events => this.events = events
)
В случае, если вы получаете массив от вашей конечной точки HTTP (что можно предположить из-за именования events
)Я бы предложил использовать mergeMap
и toArray
для сопоставления каждого элемента, а затем собрать результаты, как показано ниже:
this.http.get('https:url-to-guest-events').pipe(
mergeMap(result => result),
map(({start, end, title}) => ({
start: new Date(start),
end: new Date(end),
title: title,
draggable: true,
resizable: true,
})),
toArray()
)
.subscribe(
events => this.events = events
)
mergeMap
приведет к потоковой передаче всех элементов массива в отдельные уведомления.После сопоставления toArray
соберет все уведомления и поместит их обратно в массив, который будет удобен для последующего назначения в функции subscribe
.