※用語の使い方多分間違えていますが、感覚として記述。
subscribe・・・処理を実行する。
Observableというものを使うと、
observerというオブジェクトが使える。
このobserverは下記3つの関数を1オブジェクト化したものと認識。
・next ・・・処理を流す
・error ・・・エラー処理を流す
・complete ・・・処理を終了させる処理を流す
下記コードに書いていますが、
observer.next(?); は、データを流す処理。
データを流すだけでは、処理実行されないので、
subscribe(意味:購買)処理を記述する。
completeは、データ(next)を流す処理を終了させたい時に記述。
このコードを実行すると →observer.complete();
observer.next(5);(下記コード参照)は実行されずに処理が終わります。
ここでメモした本題は以下
subscribeは3つの引数を設定できます。
①nextでデータが流れてきた時の実行処理方法
②エラーが発生して流れてきた時の実行処理方法
③complete(データ処理終了)が流れてきた時の実行処理方法
const Observabled = Observable.create((observer) => {
observer.next(1);
observer.next(2);
observer.next(3);
setTimeout(()=>{
observer.next(4);
observer.complete(); //completeは引数なし
observer.next(5);
},1000);
});
Observabled.subscribe(
//xに1234のデータが流れてくる。
(x)=> console.log(`value: ${x}`), //①nextで流れてきたデータをどう実行処理するか。
undefined,//②エラーが発生して流れたきた場合の実行処理をどうするか
()=> console.log("終了");③completeが流れてきた時の実行処理をどうするか。
)
// 結果:
1
2
3
4
終了