RxJS / Angular Observables 使用 1 个或多个管道?
RxJS / Angular Observables use 1 or multiple pipes?
有以下(只是一个简单的例子):
observable.pipe(map( s => s.anything ))
.pipe(filter(t => t > 5))
.pipe(map( t => t+5))
.subscribe( XXX )
为什么我应该改用 1 个管道?
observable.pipe(
map( s => s.anything ), filter(t => t > 5),map( t => t+5))
.subscribe( XXX )
对我来说,第一种情况下的代码更美观、更易读。但不知道这是否会影响行为。
您应该为此目的使用单个管道。拥有多个管道没有任何意义或好处,因为管道的用途是将 RxJS 功能运算符组合到一个链中。
为了使其更具可读性,您可以这样做,而不是将所有运算符放在一行代码中。
observable
.pipe(
map(s => s.anything ),
filter(t => t > 5),
map(t => t+5)
).subscribe(res => {
// do the rest
});
官方 Angular 指南对管道和其他运算符的用法有很好的总结。您也可以通过 here. You should read up about pipeable operators over here 阅读更多相关信息。
有以下(只是一个简单的例子):
observable.pipe(map( s => s.anything ))
.pipe(filter(t => t > 5))
.pipe(map( t => t+5))
.subscribe( XXX )
为什么我应该改用 1 个管道?
observable.pipe(
map( s => s.anything ), filter(t => t > 5),map( t => t+5))
.subscribe( XXX )
对我来说,第一种情况下的代码更美观、更易读。但不知道这是否会影响行为。
您应该为此目的使用单个管道。拥有多个管道没有任何意义或好处,因为管道的用途是将 RxJS 功能运算符组合到一个链中。
为了使其更具可读性,您可以这样做,而不是将所有运算符放在一行代码中。
observable
.pipe(
map(s => s.anything ),
filter(t => t > 5),
map(t => t+5)
).subscribe(res => {
// do the rest
});
官方 Angular 指南对管道和其他运算符的用法有很好的总结。您也可以通过 here. You should read up about pipeable operators over here 阅读更多相关信息。