rxjs - 是否有一个运算符可以让我在执行 ,, switchMap" 后保留订阅的初始值?
解决方案
这是 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])))
);
}
}
推荐阅读
- node.js - “sudo npm install -g create-react-app”命令不起作用
- javascript - 在 window.location.reload() 之前执行 href;
- apache-kafka - Zookeeper 中过时的代理
- angular - Angular 11 - 登录后显示用户电子邮件
- java - Eclipse IDE - Spring MVC - 状态 404 - 请求的资源不可用 - RequestMapping 问题(不是 Maven)
- git - 在浅层存储库中获取特定提交失败
- string - 我的代码可能有什么问题,而不是打印字符串的所有子序列,而是打印一个空子序列?
- javascript - 我无法通过 React Js 中的 Route 访问某些页面
- pine-script - 第 102 行:不能用 'expr1'=input integer 调用 'operator =='。参数的类型应该是: const string;
- javascript - 值如何传递到handleChange?