是否有一个运算符可以让我在执行 , switchMap 后保留订阅的初始值?
Is there an operator that lets me keep the initial value from a subscription after executing ,, switchMap"?
我尝试在 map 运算符内部访问 switchMap 之后初始 Observable 发出的值。
我看过其他运营商,但我没有找到任何解决方案。
这是一个用于 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])))
);
}
}
我尝试在 map 运算符内部访问 switchMap 之后初始 Observable 发出的值。
我看过其他运营商,但我没有找到任何解决方案。
这是一个用于 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])))
);
}
}