Observableは配列やイベント、非同期処理からデータを取得する
Schedulerは並列処理の管理を行う。
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は実行されない
selectManyとflatMapは同じ
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を独自に作成する方法 *
同じ1つのsourceを複数の下流で共有することができる