RxJS-オブザーバブル
オブザーバブルは、オブザーバーを作成し、それをソースにアタッチする関数です。ソースには、クリック、dom要素からのマウスイベント、Httpリクエストなどの値が期待されます。
Observer is an object with callback functions、Observableとの相互作用がある場合、つまり、ソースがボタンクリック、Httpリクエストなどの例で相互作用した場合に呼び出されます。
この章では、次のトピックについて説明します。
- Observableを作成する
- Observableを購読する
- Observableを実行する
Observableを作成する
observableは、observableコンストラクターを使用し、observable createメソッドを使用し、以下に示すように、サブスクライブ関数を引数として渡すことで作成できます。
testrx.js
import { Observable } from 'rxjs';
var observable = new Observable(
function subscribe(subscriber) {
subscriber.next("My First Observable")
}
);
オブザーバブルを作成し、「MyFirstObservable」というメッセージを追加しました。 subscriber.next Observable内で利用可能なメソッド。
以下に示すように、Observable.create()メソッドを使用してObservableを作成することもできます。
testrx.js
import { Observable } from 'rxjs';
var observer = Observable.create(
function subscribe(subscriber) {
subscriber.next("My First Observable")
}
);
Observableを購読する
次のようにオブザーバブルをサブスクライブできます-
testrx.js
import { Observable } from 'rxjs';
var observer = new Observable(
function subscribe(subscriber) {
subscriber.next("My First Observable")
}
);
observer.subscribe(x => console.log(x));
オブザーバーがサブスクライブされると、オブザーバブルの実行が開始されます。
これは、ブラウザコンソールに表示されるものです-
Observableを実行する
オブザーバブルは、サブスクライブされると実行されます。オブザーバーは、通知される3つのメソッドを持つオブジェクトです。
next() −このメソッドは、数値、文字列、オブジェクトなどの値を送信します。
complete() −このメソッドは値を送信せず、オブザーバブルが完了したことを示します。
error() −このメソッドは、エラーがある場合はそれを送信します。
3つの通知すべてを使用してオブザーバブルを作成し、同じように実行しましょう。
testrx.js
import { Observable } from 'rxjs';
var observer = new Observable(
function subscribe(subscriber) {
try {
subscriber.next("My First Observable");
subscriber.next("Testing Observable");
subscriber.complete();
} catch(e){
subscriber.error(e);
}
}
);
observer.subscribe(x => console.log(x), (e)=>console.log(e),
()=>console.log("Observable is complete"));
上記のコードでは、次に、completeメソッドとerrorメソッドを追加しました。
try{
subscriber.next("My First Observable");
subscriber.next("Testing Observable");
subscriber.complete();
} catch(e){
subscriber.error(e);
}
next、complete、errorを実行するには、以下に示すようにsubscribeメソッドを呼び出す必要があります-
observer.subscribe(x => console.log(x), (e)=>console.log(e),
()=>console.log("Observable is complete"));
errorメソッドは、エラーが発生した場合にのみ呼び出されます。
これはブラウザに表示される出力です-