操作符

操作符赋予了 Observables 的强大。如果没有了操作符,Observables 将一无是处。RxJS 中有60+个操作符

我们来看其中一些:

of

  1. let stream$ = Rx.Observable.of(1,2,3,4,5)

这里我们使用了创建类型的操作符创建了 observable 。它实际上是同步的,所以值立即便输出了。事实上,它允许你用逗号分隔的要发出值的列表。

do

  1. let stream$ =
  2. Rx.Observable
  3. .of(1,2,3)
  4. .do((value) => {
  5. console.log('emits every value')
  6. });

这是一个非常方便的操作符,用来调试 Observable 。

filter

  1. let stream$ =
  2. Rx.Observable
  3. .of(1,2,3,4,5)
  4. .filter((value) => {
  5. return value % 2 === 0;
  6. })
  7. // 2,4

这样可以阻止某些值被发出

不过请注意,可以将 do 操作符添加到一个合适的地方,并且仍然可以查看所有的值

  1. let stream$ =
  2. Rx.Observable
  3. .of(1,2,3,4,5)
  4. .do((value) => {
  5. console.log('do',value)
  6. })
  7. .filter((value) => {
  8. return value % 2 === 0;
  9. })
  10. stream$.subscribe((value) => {
  11. console.log('value', value)
  12. })
  13. // do: 1,do : 2, do : 3, do : 4, do: 5
  14. // value : 2, 4