转换以Observable形式返回的对象数组

问题描述 投票:-1回答:1

校正很小。我们返回的是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实现此目标?

angular rxjs6
1个回答
0
投票

好的,您需要先映射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

© www.soinside.com 2019 - 2024. All rights reserved.