Я разработал приложение с Angular 9 и хочу вернуть массив с моим ответом. В моем классе обслуживания у меня есть этот метод,
getReport(startDate: string, endDate: string) {
return this.http.get<ReportReport>(
`https://localhost:44354/report?startDate=${startDate}&endDate=${endDate}`,
this.httpOptions);
}
Мой объект возвращается Report
export interface Report {
range: string;
opens: number;
closes: number;
}
И я бы хотел, чтобы getReport возвращал массив, подобный этому.
list= [
{
name: 'Opens',
value: Report.opens,
color: 'green',
},
{
name: 'Closes',
value: Report.closes,
color: 'red',
}
]
Итак, я попытался с наблюдаемой подпиской, например:
getReport(startDate: string, endDate: string) {
return this.http.get<ReportReport>(
`https://localhost:44354/report?startDate=${startDate}&endDate=${endDate}`,
this.httpOptions).subscribe(result => { return [{
name: 'Opens',
value: result.opens,
color: 'green',
},{
name: 'Closes',
value: result.closes,
color: 'red',
}]
});
}
, с помощью этого метода я получаю возврат подписки.
и с картой
getReport(startDate: string, endDate: string) {
return this.http.get<ReportReport>(
`https://localhost:44354/report?startDate=${startDate}&endDate=${endDate}`,
this.httpOptions).pipe(map(result => { return [{
name: 'Opens',
value: result.opens,
color: 'green',
},{
name: 'Closes',
value: result.closes,
color: 'red',
}]
}));
}
, но он не работает с подпиской и картой.
с помощью этого метода у меня есть Observable <{name: string; значение: число цвет: строка;} []> для возврата я просто хотел бы получить это возвращение -> {имя: строка; значение: число цвет: строка;} [] не наблюдается
Так можно это сделать? или / и как я могу это сделать?
Спасибо за помощь