转换作为 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.