@
ookkxw #3 嗯,想了下是思路的问题,我最后决定改成 filter 过滤,在执行不同事件的时候 tap 改变局部变量的值。这个时候就得开 filter 来过滤最重要的事件。
let eventActionType; // action type
merge(
fromEvent(A).pipe(
tap(() => eventActionType = A),
),
fromEvent(B).pipe(
filter(() => ....) // 根据 eventActionType 过滤
tap(() => eventActionType = B),
)
fromEvent(C).pipe(
filter(() => ....) // 根据 eventActionType 过滤
tap(() => eventActionType = C),
)
).pipe(
tap(() => eventActionType = null),
)