作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑一个 RxJS 的示例。
A 型:[使用过滤器]
this.userService.afAuth.authState
.pipe(filter(user => !!user))
.subscribe( _ => this.router.navigate(["/anything"]) )
B 型:[使用 if]
this.userService.afAuth.authState
.subscribe( user => {
if(!!user) this.router.navigate(["/anything"])
})
Q1. How do we compare the performance?
Q2. Which is recommended and why?
最佳答案
Q1. How do we compare the performance?
您可以使用https://jsperf.com/创建您的性能测试。我可以告诉你,“B 型”的性能一定更好,因为涉及的函数调用更少。仅当您真正经常调用该函数时(粗略估计可能为每秒 10,000 次调用),这一点才会引人注目。对于典型的用例,不会有什么区别。
Q2. Which is recommended and why?
从设计的 Angular 来看,推荐“A型”。它具有更具声明性的语法,因此更容易替换或重用。例如,您的 filter
管道可以提取到可重复使用的管道中并多次使用。如果您的谓词在某个时刻发生变化,您只需更改一次。
关于javascript - RxJS 中的 If 与 Filter 性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54596672/
我是一名优秀的程序员,十分优秀!