Javascript RxJS,运算符,根据它对可观察对象应用函数';s位置

Javascript RxJS,运算符,根据它对可观察对象应用函数';s位置,javascript,rxjs,Javascript,Rxjs,比如说,我有可观测的X,Y和Z。是否有一个RxJS操作符,它根据每个动作的位置应用动作,比如: concat(x, y, z).pipe(someOperator(a, b, c)).subscribe(done); 因此,X的发射值将由A处理,Y的发射值将由B处理,依此类推。您可以简单地像下面这样做,但要做得好,您可以创建自己的操作符,如果这是一个频繁的操作 from([{obs:z, fn:a},{obs:y, fn:b},{obs:z, fn:c}]).pipe( mergeMap(({

比如说,我有可观测的X,Y和Z。是否有一个RxJS操作符,它根据每个动作的位置应用动作,比如:

concat(x, y, z).pipe(someOperator(a, b, c)).subscribe(done);

因此,
X
的发射值将由
A
处理,
Y
的发射值将由
B
处理,依此类推。

您可以简单地像下面这样做,但要做得好,您可以创建自己的操作符,如果这是一个频繁的操作

from([{obs:z, fn:a},{obs:y, fn:b},{obs:z, fn:c}]).pipe(
mergeMap(({obs,fn})=>obs.pipe(map(value=>fn(value))
).subscribe();

根据你的描述,你不是真的想把(x.pipe(map(a)),y.pipe(map(b)),z.pipe(map(c))连接起来吗?不是真的。在最坏的情况下,它可能会有所帮助,但我希望生成更少的代码,如concat(x.pipe(map(a))、y.pipe(map(b))、z.pipe(map(c))。你是说这不是你想要的结果,还是说你不想这样写?你必须在连接的上游进行,因为下游你不知道值来自哪个源。我不想这样写。如果请求彼此独立,那么你不应该连接它们
concat
对组合流施加特定顺序@jonrsharpe的评论是对您书面问题的回答,但您的问题似乎与您试图解决的问题不匹配。