繁体   English   中英

如何将地图运算符用作mergeMap?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM