Angular rxjs里自定义operator的使用

时间:2022-07-25
本文章向大家介绍Angular rxjs里自定义operator的使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

操作符是函数,它基于当前的 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方法里调用应用程序编写的回调: