Angular rxjs裡自定義operator的使用

汪子熙發表於2020-09-24

操作符是函式,它基於當前的 Observable 建立一個新的 Observable。這是一個無副作用的操作:前面的 Observable 保持不變。

操作符本質上是一個純函式 (pure function),它接收一個 Observable 作為輸入,並生成一個新的 Observable 作為輸出。

看個例子:

ngOnInit(): void {
    // input has type observable
    function multiplyByTen(input) {
      return new Observable(function subscribe22anyname(observer) {
        input.subscribe({
          next: (v) => observer.next(10 * v),
          error: (err) => observer.error(err),
          complete: () => observer.complete()
        });
      });
    }
    const inpute = from([1, 2, 3, 4]);
    const output = multiplyByTen(inpute);
    output.subscribe(x => console.log(x));
  }

呼叫我自定義的Operator multiplyByTen, 返回一個新的Observable例項:

在Observable的建構函式裡,將應用程式傳入的subscribe方法傳入並維護到_subscribe方法裡:

sink.add方法裡呼叫應用程式編寫的回撥:


要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

相關文章