RxJS映射运算符与分解性能 我个人认为,在 RXJS < /代码>中,有2个错误的做法——对吗? 以下哪种方式在性能方面更可取?为什么 source$.pipe( map(s => s.someKey) ).subscribe(someValue => { workWithData(someValue) })

RxJS映射运算符与分解性能 我个人认为,在 RXJS < /代码>中,有2个错误的做法——对吗? 以下哪种方式在性能方面更可取?为什么 source$.pipe( map(s => s.someKey) ).subscribe(someValue => { workWithData(someValue) }),rxjs,reactivex,Rxjs,Reactivex,或 我不认为表现是这里的主要问题,更多的是关于你的意图。第二个更好,因为调用的函数更少 如果计划在应用程序的其他部分使用映射的可观察流,则应使用第一个,如下所示: const sourceKeys$=source$.pipe( 映射(s=>s.someKey) ); 订阅(someValue=>{ 使用数据(someValue)工作 }) 如果不需要将sourceKeys$作为可观察对象,则可以在subscribe块中执行所有副作用和数据操作 就性能而言,第二个肯定更好。解构总是比使用运算符快


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

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

const sourceKeys$=source$.pipe(
映射(s=>s.someKey)
);
订阅(someValue=>{
使用数据(someValue)工作
})

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

就性能而言,第二个肯定更好。解构总是比使用运算符快。@martin你能给我一些建议吗?我知道redux中的
useSelector
不建议提取整个状态,然后进行分解-它建议将其映射
source$.subscribe(({someValue}) => {
   workWithData(someValue)
})