我可以根据rxjs中的现有流创建一个全新的流吗

时间:2020-07-23 10:04:40

标签: rxjs rxjs-observables

例如,我有一个数字为1,2,3,4的流,依此类推。我想感知这些数据中的每一个,并且每当我想在另一个数据流中发出true时。保持源数据stram [1,2,3,4]不变。

1 个答案:

答案 0 :(得分:1)

我建议您共享您的来源并订阅两次。


  ...

  private source$ = of(1,2,3,4,5,6).pipe(share());
  
  private evenNumberObservable$ = this.source$.pipe(
    map(x => x % 2 === 0),
    filter(x => !!x)
  );

  //or
  //private evenNumberObservable$ = this.source$.pipe(
  //  filter(x => x % 2 === 0),
  //  map(x => true)
  //);

  public ngOnInit() {
    this.evenNumberObservable$.subscribe(x => console.log(x));
    this.source$.subscribe(x => console.log(x))
  }

  ...

整个code