javascript - 返回一个带有 Observable<{string; 响应的数组 数字; 字符串;}[]>
问题描述
我用 Angular 9 开发了一个应用程序,我想用我的响应返回一个数组。在我的服务类中,我有这个方法,
getReport(startDate: string, endDate: string) {
return this.http.get<ReportReport>(
`https://localhost:44354/report?startDate=${startDate}&endDate=${endDate}`,
this.httpOptions);
}
我的对象返回是报告
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; value: number color: string;}[]> 用于返回我只是想要这个返回 -> {name: string; 值:数字颜色:字符串;}[] 不可观察
那么有可能这样做吗?或/和我怎样才能做到这一点?
谢谢您的帮助
解决方案
我尝试使用带有承诺的 async/await
async getReport(startDate: string, endDate: string){
return await this.http
.get<Report>(
`https://localhost:44354/report?startDate=${startDate}&endDate=${endDate}`,
this.httpOptions
)
.toPromise();
}
getReports(startDate: string, endDate: string) {
this.getReport('2020-03-20', '2020-03-26').then(response => {
let lists= [
{
name: 'Opens',
value: response .opens,
color: 'green',
},
{
name: 'Opens',
value: response .opens,
color: 'green',
}];
});
它可以在承诺之外使用列表吗?例如,如果我想从我的方法 getReport 中返回列表?
推荐阅读
- vue.js - 什么是 Vuetify v-menu 组件的“保存”方法?
- python - Pandas DataFrame - 如何获取行的第一个“名称”
- angular - 订阅有角度的 FormGroup 的方式变得专注于进出
- entity-framework - 无法创建类型为“ApplicationDbContex”的对象 Blazor ASP.NET Core 6.0
- google-play - ANR 报告的变化
- java - JavaFx 缩放和平移覆盖固定比例标签的图像
- r - R中的“标记”重复项
- maven - JUnit5:运行参数化测试的单个“实例”
- ruby-on-rails - Rails 6.1.4.1:证书验证失败(无法获取本地颁发者证书)(OpenSSL::SSL::SSLError)
- c - GCC C:是否存在调用 __attribute__(cleanup) 函数的等价于 exit() 的函数?