Rxjs入门3-Operators[实例操作符、静态操作符、弹珠图、选择操作符、操作符分类]、Subject、为啥要定义Subject (主体)概念、Subject派生

本文介绍了RxJS中的操作符,包括实例操作符、静态操作符及其分类,通过弹珠图帮助理解数据流。同时,深入探讨了Subject的概念,解释了为何需要Subject以及其派生类型BehaviorSubject、ReplaySubject和AsyncSubject的工作原理。
摘要由CSDN通过智能技术生成

20、Operators (操作符)

操作符是 Observable 类型上的方法,比如 .map(...).filter(...).merge(...),等等。当操作符被调用时,它们不会改变已经存在的 Observable 实例。相反,它们返回一个新的 Observable
大家可以结合常用操作符的交互图 来学习如何使用:
这里写图片描述
操作符本质上是一个纯函数 (pure function),它接收一个 Observable 作为输入,并生成一个新的 Observable 作为输出。
下面我们创建一个自定义操作符函数,它将从输入 Observable 接收的每个值都乘以10:

function multiplyByTen(input) {
  var output = Rx.Observable.create(function subscribe(observer) {
    input.subscribe({
      next: (v) => observer.next(10 * v),
      error: (err) => observer.error(err),
      complete: () => observer.complete()
    });
  });
  return output;
}

var input = Rx.Observable.from([1, 2, 3, 4]);
var output = multiplyByTen(input);
output.subscribe(x => console.log(x));

这里写图片描述

21、Operators实例操作符

它是 Observable 实例上的方法。举例来说,如果上面的 multiplyByTen 是官方提供的实例操作符:

Rx.Observable.prototype.multiplyByTen = function multiplyByTen() {
  var input = this;
  return Rx.Observable.create(function subscribe(observer) {
    input.subscribe({
      next: (v) => observer.next(10 * v),
      error: (err) => observer.error(err),
      complete: () => observer.complete()
    });
  });
}

实例运算符是使用 this 关键字来指代输入的 Observable 的函数。这里的 input Observable 不再是一个函数参数,它现在是 this 对象,然后调用输出:

var observable = Rx.Observable.from([1, 2, 3, 4]).multiplyByTen();
observable.subscribe(x => console.log(x));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值