Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RxJs6-静态合并观察值数组_Javascript_Reactive Programming_Rxjs6 - Fatal编程技术网

Javascript RxJs6-静态合并观察值数组

Javascript RxJs6-静态合并观察值数组,javascript,reactive-programming,rxjs6,Javascript,Reactive Programming,Rxjs6,我有一个由用户动态创建的对象列表。每个对象都有一个单击$可观察,我想将所有这些单击$流合并到一个流中 我尝试了rxjsimport中的merge静态操作符。使用对流的直接引用: sub = merge(list[0].click$, list[1].click$) .subscribe(e => { console.log('My click event', e); }) 一切如期进行 但是,当我在订阅下一个调用中使用click$数组时,我收到了一个可观

我有一个由用户动态创建的对象列表。每个对象都有一个
单击$
可观察,我想将所有这些
单击$
流合并到一个流中

我尝试了
rxjs
import中的
merge
静态操作符。使用对流的直接引用:

sub = merge(list[0].click$, list[1].click$)
    .subscribe(e => { 
       console.log('My click event', e); 
    })
一切如期进行

但是,当我在订阅下一个调用中使用
click$
数组时,我收到了一个
可观察的
对象,而不是我的click事件

const streams= [];
list.forEach(o => { streams.push(o.click$); });

sub = merge(streams).subscribe(e => {
  console.log(e); // e is an observable ???
});
为什么??我做错了什么


这里有一个类似的实现,但有相同的错误:

,因为它是一个数组。您可以使用JavaScript中的
操作符来扩展数组。如果你这样做,一切都会很好

有关更多信息,请访问

我添加了代码,让你明白我的意思。列表是具有
单击$
属性的对象数组。此数组仅映射到
单击$
,然后使用
运算符展开

sub=merge(…list.map(item=>item.click$).subscribe(console.log)