[英]How to use map operator as mergeMap?
现在不推荐使用mergeMap
,并且源中有以下注释:
/* @deprecated resultSelector no longer supported, use inner map instead */
如何改用“内部地图”? 我想这意味着在.pipe
中使用map
运算符函数,但是 observable 并没有像mergeMap
一样被展平。
obs1$.pipe(map(() => obs2$)).subscribe(r => console.log(r === obs2$))
// > true
那么,没有它怎么相当于mergeMap
呢?
您仍然使用 mergeMap,它只是不推荐使用的 resultSelector 函数。
这个没有被弃用:
export function mergeMap<T, R>(project: (value: T, index: number) => ObservableInput<R>, concurrent?: number): OperatorFunction<T, R>;
然而,这些是:
/** @deprecated resultSelector no longer supported, use inner map instead */
export function mergeMap<T, R>(project: (value: T, index: number) => ObservableInput<R>, resultSelector: undefined, concurrent?: number): OperatorFunction<T, R>;
/** @deprecated resultSelector no longer supported, use inner map instead */
export function mergeMap<T, I, R>(project: (value: T, index: number) => ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
这是做这个内部地图的例子
this.subj1.pipe(mergeMap((outer) => this.subj2.pipe(map((inner) => [outer, inner]))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.