Angular rxjs里自定义operator的使用

325 阅读1分钟

操作符是函数,它基于当前的 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的原创文章,请关注公众号"汪子熙":