转换作为 Observable 返回的对象数组
Transform the array of objects returned as Observable
有小幅修正。
我们 returning 的是 Object[] 而不是 Object。
方法签名也更改如下 -
我有一个方法 returns Observable
如下-
getData(url: string): Observable<Object[]> {
return this.http.get<Object[]>(url);
}
其中 Object
如下所示:
{
property1 : value1
property2 : value2
property3 : "" // no value right now
}
我想做的是:
return Observable<Object[]>
(请注意同一个对象)
对象如下所示:
{
property1 : value1
property2 : value2
property3 : value1 + value2; //combine property1 and property2 values
}
我们怎样才能做到这一点?
我知道我们必须使用 rxjs map operator
但我们如何使用它呢?
urlTransforming Observable with .map讲的是转换Array而不是Map
我们如何在 Observable
上使用 Map operator
来实现这一点?
好的,您需要映射 Observable
的数据才能被订阅。
有一个叫做pipe
的函数用来修改Observable
和returns和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
.
有小幅修正。
我们 returning 的是 Object[] 而不是 Object。
方法签名也更改如下 -
我有一个方法 returns Observable
如下-
getData(url: string): Observable<Object[]> {
return this.http.get<Object[]>(url);
}
其中 Object
如下所示:
{
property1 : value1
property2 : value2
property3 : "" // no value right now
}
我想做的是:
return Observable<Object[]>
(请注意同一个对象)
对象如下所示:
{
property1 : value1
property2 : value2
property3 : value1 + value2; //combine property1 and property2 values
}
我们怎样才能做到这一点?
我知道我们必须使用 rxjs map operator
但我们如何使用它呢?
urlTransforming Observable with .map讲的是转换Array而不是Map
我们如何在 Observable
上使用 Map operator
来实现这一点?
好的,您需要映射 Observable
的数据才能被订阅。
有一个叫做pipe
的函数用来修改Observable
和returns和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
.