Как использовать оператор карты в качестве mergeMap? - PullRequest
0 голосов
/ 12 июня 2018

Теперь, когда mergeMap устарело, и источник содержит следующий комментарий:

/* @deprecated resultSelector no longer supported, use inner map instead */

Как использовать вместо этого "внутреннюю карту"?Я предполагаю, что это означает использование операторной функции map внутри .pipe, но наблюдаемое не сглаживается, как это происходит с mergeMap.

obs1$.pipe(map(() => obs2$)).subscribe(r => console.log(r === obs2$))
// > true

Итак, как сделать эквивалент mergeMap без этого?

1 Ответ

0 голосов
/ 12 июня 2018

Вы по-прежнему используете 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>;
...