孤独プログラマー譚

孤独死が近い。

2020-04-01から1ヶ月間の記事一覧

RxJS pluck

オブジェクトのプロパティ名を指定して値を返却できるオペレータ。 mapオペレータで十分な気がする。 let obs = of( { a: 1, b: { c: 2 } }, { a: 3, b: { c: 4 } }, { a: 5, b: { c: 6 } }, ) obs.pipe( op.pluck('a') ).subscribe(cl) // 1,3,5 obs.pipe( …

RxJS exhaustMap

初めのストリームが優先して実行される。 実行中に後から来たストリームは、キャンセルされる。 switchMapと逆バージョンのようなイメージ。 of(0, 1, 2).pipe( exhaustMap(x => sto(x + 1)) ).subscribe(cl) // 1 timer(0, 500).pipe( exhaustMap(x => sto(…

RxJS オペレータscan, reduceの違い

scanはストリームごとにnextを発火する。 of(1, 2, 3, 4).pipe( scan((acc, val) => acc + val, 10) ) .subscribe(cl) // 11, 13, 16, 20 reduceは、最後のストリームだけ、nextを発火する。 of(1, 2, 3, 4).pipe( reduce((acc, val) => acc + val, 100) ) .…

RxJS 結合オペレータ覚え書き

let obs1 = sto(1) let obs2 = sto(2) merge(obs1, obs2).subscribe(cl) // 1秒後に1, 2 concat(obs1, obs2).subscribe(cl) // 1秒後に1, 2秒後に2 forkJoin(obs1, obs2).subscribe(cl) // 1秒後に[1, 2] zip(of(1,2), of(3,4)).subscribe(cl) // 1秒後に[1,…

RxJS Subject

Subjectは、Observable + Observer である。 Subjectはユニキャストできる。 Subjectは、Subjectオブジェクト作成後、後々ストリームを流せる。 Observableオブジェクトより、使い勝手が良さそう? let sbj = new Subject sbj.subscribe((val) => console.lo…

RxJS tap

前回と同じ、こちら共通関数。 function sto(x, time = 1000) { const observable = new Observable(subscriber => { setTimeout(() => { subscriber.next(x) subscriber.complete() }, time); }); return observable } function cl(x) { console.log(x) } …

RxJS mergeMap, concatMap, switchMapの違い

以下、共通関数。 function sto(x, time = 1000) { const observable = new Observable(subscriber => { setTimeout(() => { subscriber.next(x) subscriber.complete() }, time); }); return observable } function cl(x) { console.log(x) } mergeMap of(0…