RxJSメモ

RxJSのメモ
RxJava

Observableは配列やイベント、非同期処理からデータを取得する
Schedulerは並列処理の管理を行う。

subscribe()Disposableを返す

Observableを直接生成するにはRx.Observable.create(subscribe)を使用する。
subscribeはobserverを引数にとる関数である。
subscribeはobserver.onNext()とobserver.onCompleted()を実行する。
subscribeは関数を返すとその関数がdispose()になる。
sourse.publish()ConnectableObservableを返す。
ConnectableObservableはconnect()するまでデータを流さない

Rx.Observable.fromEvent(element, eventName, [selector])のelementにはjQueryやNodeListも指定するすることができる。

Observableはストリーム

startWithはストリームの最初に流すデータを指定する。

独自のイベントを登録する際はfromEventPatternを利用する

コールバック関数の引数をにObservableするにはfromCallback(func, [context], [selector])を利用する。
コールバック関数はfuncの最後の引数である必要がある

コールバック関数の第一引数にエラーデータがセットされるような関数はfromNodeCallback(func, [context], [selector])を利用する

PromiseからObservableを生成するにはfromPromise(promise)を利用する

concat(…args)はObservableの後ろにObservableをつなげる。

[merge(maxConcurrent other)](https://github.com/ReactiveX/RxJava/wiki/Combining-Observables#merge)はObservableを合成する

onErrorResumeNext(second)はerrorがあってもなくても実行されるがcatch(second | handler)はerrorが発生しなければ実行されない
両方ともonErrorは実行されない

mapselectは同じ

selectManyflatMapは同じ
mapした結果をObservableの階層を1つ外して返す。

take(count, [scheduler])はObservableから指定した値を取得してそれらで構成するObservableを返す

generate(initialState, condition, iterate, resultSelector, [scheduler])はfor文のようにObservableを返す

filter()とwhere()は同じ

bufferWithCount(count, [skip])は指定した個数分のデータを受け取って、それを1つの配列にまとめて次の処理に渡す

[bufferWithTime(timeSpan, [timeShift scheduler], [scheduler])](https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/bufferwithtime.md)は指定した期間に取得したデータをまとめて配列にする。それを次の処理に渡す。

関数をカテゴリー別に整理した表 *

Subjectは値をプッシュできる ](http://jsdo.it/38elements/rxjs_subject/) [

Rx.Scheduler.immediateは実行中のスレッドで今すぐ実行
Rx.Scheduler.currentThreadは実行中のスレッドの処理が終了後に実行
Rx.Scheduler.timeoutは非同期コールバックで新しいスレッドで実行

observeOn(scheduler)
subscribeOn(scheduler)

eventからObservableを独自に作成する方法 *

RxJSHelperメモ

Observables method 一覧

同じ1つのsourceを複数の下流で共有することができる