rxjs6 Conditional and Boolean Operators & Mathematical and Aggregate Operators

原文链接: rxjs6 Conditional and Boolean Operators & Mathematical and Aggregate Operators

上一篇: rxjs6 Creation Operators

下一篇: rxjs6 Combination Operators

Conditional and Boolean Operators

defaultIfEmpty

如果源流在结束时没有发出一个值, 则发出一个默认值

up-b75a1ae04863bca9817283a42e5bbdf8914.png

const {of} = require('rxjs')
const {defaultIfEmpty} = require('rxjs/operators')
of(1, 2, 3).pipe(
  defaultIfEmpty('abc')
).subscribe(console.log)
of().pipe(
  defaultIfEmpty('abc')
).subscribe(console.log)

every

类似数组, 返回值为流中的数据是否都满足某个条件

const {of} = require('rxjs')
const {every} = require('rxjs/operators')
const source$ = of(1, 2, 3)
source$.pipe(
  every(x => x < 5)
).subscribe(console.log) // true
source$.pipe(
  every(x => x % 2)
).subscribe(console.log) // false

find & findIndex

返回第一个满足条件的值/位置, 第一个参数为比较函数, 第二个参数为比较函数执行时的this指向, 默认为空

const {of} = require('rxjs')
const {find, findIndex} = require('rxjs/operators')
const source$ = of(1, 2, 3, 4, 5, 6)
source$.pipe(
  find(x => x > 4)
).subscribe(console.log) // 5

source$.pipe(
  findIndex(x => x > 4)
).subscribe(console.log) // 4

isEmpty

判断序列是否在完成时没有发出值

const {of,EMPTY} = require('rxjs')
const {isEmpty} = require('rxjs/operators')
const source$ = of(1, 2, 3, 4, 5, 6)
source$.pipe(
  isEmpty()
).subscribe(console.log) // false

EMPTY.pipe(
  isEmpty()
).subscribe(console.log) // true

Mathematical and Aggregate Operators

count

对流中的数据计数

max

流中的最大值

min

流中的最小值

reduce

类似数组的reduce, 只会在流结束时发出值

scan

和reduce不同, 每次有一个值发出时, 就会执行函数, 并发出累加值

const {of, EMPTY} = require('rxjs')
const {count, max, min, reduce, scan} = require('rxjs/operators')
const source$ = of(1, 2, 3, 4, 5, 6)
source$.pipe(
  count()
).subscribe(console.log) // 6
source$.pipe(
  max()
).subscribe(console.log) // 6
source$.pipe(
  min()
).subscribe(console.log) // 1
function sum(pre, cur) {
  return pre + cur
}

source$.pipe(
  reduce(sum, 0)
).subscribe(console.log) // 21
console.log('===')
source$.pipe(
  scan(sum, 0)
).subscribe(console.log) // 1 3 6 10 15 21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值