RxJS地图运算符与解构性能

时间:2020-04-02 07:43:50

标签: rxjs reactivex

rxjs而言,我个人认为#2不良做法-是吗? 就性能而言,以下哪种方式更可取,为什么?

source$.pipe(
   map(s => s.someKey)
).subscribe(someValue => {
   workWithData(someValue)
})

source$.subscribe(({someValue}) => {
   workWithData(someValue)
})

1 个答案:

答案 0 :(得分:2)

我不认为表现是这里的主要问题,它更多地是关于您的意图。第二个更好,因为调用的函数较少。

如果计划在应用程序的其他部分中使用映射的可观察流,则应使用第一个,例如:

const sourceKeys$ = source$.pipe(
   map(s => s.someKey)
);
sourceKeys.subscribe(someValue => {
   workWithData(someValue)
})

如果不需要sourceKeys$作为观察对象,则可以在subscribe块中进行所有副作用和数据操作。