是否有一个运算符可以让我在执行 , switchMap 后保留订阅的初始值?

Is there an operator that lets me keep the initial value from a subscription after executing ,, switchMap"?

我尝试在 map 运算符内部访问 switchMap 之后初始 Observable 发出的值。

https://ibb.co/1QB9zZp

我看过其他运营商,但我没有找到任何解决方案。

这是一个用于 RxJS 的运算符,它将作为数组对发出外部值和内部值 [outer, inner]

这是一个 switchMap() 变体。

export function withSwitchMap<T, R>(inner: (T) => Observable<R>): OperatorFunction<T, [T, R]> {
    return (source: Observable<T>): Observable<[T, R]> => {
        return source.pipe(
            switchMap(a => inner(a).pipe(map(b => [a, b] as [T, R])))
        );
    }
}

这是一个 mergeMap() 变体。

export function withMergeMap<T, R>(inner: (T) => Observable<R>): OperatorFunction<T, [T, R]> {
    return (source: Observable<T>): Observable<[T, R]> => {
        return source.pipe(
            mergeMap(a => inner(a).pipe(map(b => [a, b] as [T, R])))
        );
    }
}