校正很小。我们返回的是Object [],而不是Object。方法签名也如下更改-我有一个返回Observable
的方法,如下所示-
getData(url: string): Observable<Object[]> {
return this.http.get<Object[]>(url);
}
Object
如下:
{
property1 : value1
property2 : value2
property3 : "" // no value right now
}
我想做的是:
返回Observable<Object[]>
(请注意同一对象)
对象如下所示:
{
property1 : value1
property2 : value2
property3 : value1 + value2; //combine property1 and property2 values
}
我们如何实现这一目标?
我知道我们必须使用rxjs map operator
,但是我们如何使用它呢?
URL Transforming Observable with .map讨论的是转换数组而不是映射
如何使用Map operator
上的Observable
实现此目标?
好的,您需要先映射Observable
的数据,然后才能进行订阅。
有一个称为pipe
的函数,用于修改Observable
的数据并返回Observable
。
针对您的情况:
Observable<Object> getData(){
// let assume your observable is called getObs
return getObs.pipe(
map(objs => {
objs.map(obj => obj[property3] = obj[property1] + obj[property2]);
return objs;
})
)
}
顺便说一句,所有rxjs/operators
必须在pipe
函数中调用,而不仅仅是map
。