如果我没理解错你的问题,你可能想试试这样的
firstObservable$.pipe(
map(() => secondObservable$),
tap(value_1 => doSomething(value_1)),
mergeMap(() => {
// create 3 separate observables, each doing its specific processing
third = ThirdObservable$.pipe(tap(value => doAnotherThing(value));
fourth = FourthObservable$.pipe(tap(value => andAnother(value));
fifth = FifthObservable$).pipe(tap(value => again(value));
// return the merge of the 3 observables
return merge(third, fourth, fifth);
})
).subscribe()
虽然我不明白,但我有一个观点。在第一
map
运算符返回Observable(
secondObservable$
). 这意味着我调用的变量
value_1
将包含一个Observable,因此
doSomething
必须是一个需要Observable作为输入的函数。这是你真正想要的吗?
通常,在这种情况下,您希望使用“高阶”运算符,如
switchMap
,
mergeMap
,
concatMap
或
exaustMap
这些运算符期望一个返回Observable的函数作为输入,并将返回的Observable“展开”。也许这也是你想要的。