RxJS 史诗中弃用的 concat 运算符
deprecated concat operator in RxJS epic
我有一个与 concat 运算符配合得很好的史诗。 Webstorm 开始说它以我使用它的方式被弃用。说
deprecated export function concat<{type: string}[]>( v1: {type: string}[], scheduler: SchedulerLike): Observable>
Use scheduled and concatAll (e.g. scheduled([o1, o2, o3], scheduler).pipe(concatAll())
想不通,如何重写这段代码?
const epic = action$ => action$.pipe(
ofType(TYPE),
mergeMap(() =>
concat(
of({type: 'START'}),
ajax.getJSON('someurl').pipe(
mergeMap(serverResponse => ([
{type: 'LOADED'},
{type: 'DO_JOB', serverResponse}
]))
)
)
)
使用concatWith。 concatWith 实际上并不是一个全新的运算符。它仅用于替换当前标记为已弃用并将在 v8 中删除的 concat 运算符。
不过,两者之间存在细微差别。 concatWith 只接受 ObservableInput 类型的输入,而 concat 也可以接受调度程序。
可以找到更多详细信息here
在你的情况下这不是弃用。
弃用仅影响带有调度程序参数的连接。 (函数的另一个签名)。 (参见其他类似问题:https://github.com/ReactiveX/rxjs/issues/4723)
您可以使用:
// tslint:disable-next-line:deprecation
concat(...);
我有一个与 concat 运算符配合得很好的史诗。 Webstorm 开始说它以我使用它的方式被弃用。说
deprecated export function concat<{type: string}[]>( v1: {type: string}[], scheduler: SchedulerLike): Observable> Use scheduled and concatAll (e.g. scheduled([o1, o2, o3], scheduler).pipe(concatAll())
想不通,如何重写这段代码?
const epic = action$ => action$.pipe(
ofType(TYPE),
mergeMap(() =>
concat(
of({type: 'START'}),
ajax.getJSON('someurl').pipe(
mergeMap(serverResponse => ([
{type: 'LOADED'},
{type: 'DO_JOB', serverResponse}
]))
)
)
)
使用concatWith。 concatWith 实际上并不是一个全新的运算符。它仅用于替换当前标记为已弃用并将在 v8 中删除的 concat 运算符。
不过,两者之间存在细微差别。 concatWith 只接受 ObservableInput 类型的输入,而 concat 也可以接受调度程序。
可以找到更多详细信息here
在你的情况下这不是弃用。
弃用仅影响带有调度程序参数的连接。 (函数的另一个签名)。 (参见其他类似问题:https://github.com/ReactiveX/rxjs/issues/4723)
您可以使用:
// tslint:disable-next-line:deprecation
concat(...);