RxJS: オペレータでフィルタリングや加工


前提


ドキュメント


オペレータの使い方

observables.pipe(
  オペレータ1(),
  オペレータ2(),
  オペレータ3()
).subscribe(observer)
const operators = require('rxjs/operators')
// 例
const filter = operators.filter

filter

const rxjs = require('rxjs')
const operators = require('rxjs/operators')
const range = rxjs.range
const filter = operators.filter

range(1, 9).pipe(
  filter(x => x % 2 === 0) // 2の倍数ならtrue
).subscribe(console.log)

結果

2
4
6
8

map, tap, take

range(1, 5).pipe(
  map(x => x * 3),
  tap(x => console.log('tap:', x)),
  filter(x => x % 2 === 0),
  take(2)                                                                                                             
).subscribe(console.log)

結果

tap: 3
tap: 6
6
tap: 9
tap: 12
12