簡體   English   中英

訂閱嵌套的 Observable 數組

[英]subscribe to array of nested Observables

我有一個包含對象的數組,每個對象都有兩個道具,其中一個是可觀察值

let myArray = [{def: 'name1', value: EventEmitter_}, {def: 'name2', value: EventEmitter_}]

我想做的是訂閱 Observables 並返回發生更改的根對象

到目前為止我只得到具體的價值

      myArray.forEach(e => {
        e.value.subscribe(e => console.log(e))
      })

我嘗試使用merge

  merge(myArray).subscribe((v)=> {
        console.log(v)
       })

但是如果 Observable 是嵌套的,那將不起作用

您可以通過管道傳輸價值流。

myArray.forEach(e => {
  e.value.pipe(
    map(v => [e.def, v]),
  ).subscribe(([d, v]) => console.log(`Root ${d} returned %{v}`));
})
obs = merge(
    ...this.array.map((x: any) =>
      x.value.pipe(map((res) => ({ def: x.def, response: res })))
    )
  );

您將使用屬性“def”和屬性“response”轉換的“observables”合並。 所以你只需要一個訂閱

stackblitz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM