我有一系列项目,我将映射到我需要使用merge
组合的可观察项目。我试图使用lettable运算符来做这件事。例如:
// obs is an array of observables
from(obs).pipe(merge());
但是如果我订阅了它,它只会立即发出一个observable数组,而不是发出合并的可观察值。
我试过了:
from(obs).pipe(mergeMap(ob => ob));
这实际上按预期工作,但我希望.merge
能做同样的事情。有没有办法可以使用merge
展平观察点?
答案 0 :(得分:1)
我想要使用的运营商是mergeAll
而不是merge
。
from(obs).pipe(mergeAll());
.merge
运算符接受可观察量的发射,并将可观察参数的发射链接到它。在我原来的问题中,根本没有进行任何转换,这相当于from(obs)
。
如果您有两个Observable(或继续链接它们),您也可以obs[0].pipe(merge(obs[1]))
。 mergeAll
允许您为任意数量的输入可观察量执行此操作。静态merge
运算符也可以使用任意数量的输入可观察量。