RxJS / Angular Observables 使用 1 个还是多个管道?

use*_*476 8 observable rxjs angular rxjs-pipeable-operators

有以下(只是一个简单的例子):

observable.pipe(map( s => s.anything ))
          .pipe(filter(t => t > 5))
          .pipe(map( t => t+5))
          .subscribe( XXX )
Run Code Online (Sandbox Code Playgroud)

为什么我应该使用 1 个管道?

    observable.pipe(
                   map( s => s.anything ), filter(t => t > 5),map( t => t+5))
              .subscribe( XXX )
Run Code Online (Sandbox Code Playgroud)

对我来说,第一种情况下的代码更漂亮、更易读。但不知道这是否会影响行为。

wen*_*jun 12

为此,您应该使用单个管道。拥有多个管道没有任何意义或好处,因为管道的用途是将 RxJS 功能运算符组合成一个链。

为了使其更具可读性,您可以执行以下操作,而不是将所有运算符都放在 1 行代码中。

observable
  .pipe(
    map(s => s.anything ),
    filter(t => t > 5),
    map(t => t+5)
  ).subscribe(res => {
    // do the rest
});
Run Code Online (Sandbox Code Playgroud)

Angular 官方指南对管道和其他运算符的使用有很好的总结。你可以在这里阅读更多关于它的信息。您也应该在这里阅读有关可管道操作符的信息。