让前端飞Web前端之路

rxjs-数学相关操作符

2019-06-26  本文已影响1人  bugWriter_y

count

统计一共发射了多少数据

import { takeUntil, count } from "rxjs/operators";
import { interval, fromEvent } from "rxjs";

max

统一最大的值,或者传一个比较函数取出逻辑上最大的值

import { max } from "rxjs/operators";
import { of } from "rxjs";
//利用max求出最大的值
of(1, 2, 3, 4)
  .pipe(max())
  .subscribe(x => console.log(x));
//利用max和比较函数求出最小的值
of(1, 2, 3, 4)
  .pipe(max((x, y) => Math.min(x, y)))
  .subscribe(x => console.log(x));

min

统计最小的值,或者传一个比较函数取出逻辑上最小的值

reduce

累加操作符,通过当前值和累加值的运算求出最终的值,例如求和运算,每一次计算都是将当前值和之前的和相加,最后一次计算的结果就是最终的结果。

注意累加运算需要一个初始值作为第一次运算时的“上一次结果”,不然第一个值不知道和谁去计算

import { take, reduce, tap } from "rxjs/operators";
import { interval } from "rxjs";
interval(100)
  .pipe(
    tap(_ => console.log(_)),
    take(20),
    reduce((x, y) => x + y, 0)
  )
  .subscribe(x => console.log(x));
上一篇 下一篇

猜你喜欢

热点阅读