【发布时间】:2021-04-10 07:56:34
【问题描述】:
我有这样的服务:
getLastStatus(id): Observable<string> {
let url_detail = this.apiurl + `/${id}`;
return this.http.get<any>(url_detail, this.httpOptions).pipe(
map(data => {
var status = data['data'].reduce((item, curr) => {
return item.id < curr.id ? curr : item;
}).status.title;
return status;
}),
catchError(this.handleError)
);
}
getData(){
return this.http.get<DataModel[]>(this.apiurl, this.httpOptions).pipe(
tap(data=> {
data.map(d=>{
this.getLastStatus(d.id).subscribe(s=>{
d.status = s;
});
});
}),
catchError(this.handleError)
);
}
我想从 json 对象的结果中更新状态值。但是,当我像这样订阅 getData() 时,状态的值没有更新。
this.myService.getData().subscribe(data=>{
console.log(data)
data.map(d=>{
console.log("status ", d.status) //value of status not updated
})
});
我应该如何处理我的代码?有什么建议吗?
【问题讨论】:
-
本题不涉及 JSON。 Angular 基础架构负责从 JSON 文本格式到所需的 JavaScript 对象的所有转换。
标签: javascript arrays angular object rxjs