是否可以有多个采摘运算符(rxjs)

时间:2021-03-01 12:19:17

标签: angular rxjs observable

我的 http 响应有问题。我只是得到这样的回应:

{
    objectArrayList1 : [{...}, {...}, {...}],
    
    
    objectArrayList2 : [{...}, {...}, {...}],

.
.
.

}

我可以分别做 pluck('objectArrayList1') 和 pluck('objectArrayList2')。但是是否可以同时将 pluck 运算符(或运算符)应用于 objectArrayList1 和 objectArrayList2?例如在管道中;

.pipe(
   pluck('objectArrayList1'),
   *I would like  to work with objectArrayList2 also*
)

完成


试图得到这样的东西:

this.http.get<responseType>('https://myUrl/somethingtoask', {
      params:{
        x: '123',
        y: '234',
        ...
      }
    }).pipe(
          pluck('objectArrayList1'),
          *I would like  to work with objectArrayList2 also*
    )

如何分别访问 objectArrayList1 和 objectArrayList2(最好在同一管道中)?

1 个答案:

答案 0 :(得分:2)

pluck 运算符仅用于获取对象属性之一。相反,您可以将 map 运算符与对象 destructuring 一起使用以返回多个属性。

this.http.get<responseType>('https://myUrl/somethingtoask', {
  params:{
    x: '123',
    y: '234',
    ...
  }
}).pipe(
  map(({ objectArrayList1, objectArrayList2 }) => ({ objectArrayList1, objectArrayList2 }))
).subscribe({
  next: (response: any) => {
    // use `response.objectArrayList1` and `response.objectArrayList2`
  },
  error: (error: any) => { }
});
相关问题