表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

157/210

RxJS・・・まだまだ理解不足ですが

多少判った気がするRxJSですが、見れば見る程判らない。


例えば、自分なりにシンプルな例かもと思った次のコード

------------------------------------------

  let intT=0;

  const obstest_1 = from([1,2,0,4])

  obstest_1.subscribe({

   next(x){

    let c =intT/x;

    console.log(x+" : "+c);

   },

   error(err) {

    console.log(err)

   },

   complete() {

    console.log("fin")

   },

  })

------------------------------------------


errorはどういう時に表示されるのかと思い見つけたコードが


------------------------------------------

  const obs$ = new Observable((sub) => {

   sub.next('1');

   sub.error(new Error('something wrong'));

   console.log("after error") // this message will appear

   sub.complete();

  });

  obs$.subscribe({

   next: console.log,

   error: console.error,

  });

------------------------------------------


これで、ちゃんと'something wrong'とconsole.logに表示されるわけですが、このobs$は一体何を観測可能なものとしてとらえているのか?


以下のようにしても動くので、少し判った気もしますが

------------------------------------------

  const obs$ = new Observable((sub) => {

   sub.next('1');

   sub.error(new Error('something wrong'));

   console.log("after error") // this message will appear

   sub.complete();

   sub.next("2");

   console.log("2?")

   sub.complete();

   sub.next("7");

   console.log("7?")

   sub.next("17");

   console.log("17?")

  });

------------------------------------------

sub.next('1');でコンソールログに"1"を表示、sub.error(new Error('something wrong'));でコンソールログに"something wrong"を表示しています。


obs$.subscribeの中での定義ですね。


ただし色々試してみると


・sub.error(new Error('something wrong'));のようにエラーを起こすとそれ以後は処理しない。

 ただしsub.メソッド以外のただの"console.log("・・・")"は1度のみ通る

・sub.complete();以下も同じ


また少し判った気がしますが、一口にRxJSと言ってますが、同じとは思えないパターンをひとまとめにしている気もします。


(理解していない今でさえ)使いたいアイデアは色々湧くのですが、まだまだ勉強が要りそうです。


投稿


参考サイト

Observable の エラーハンドリング

https://zenn.dev/mikakane/articles/rxjs_2_errorhandling


読んで判らない時はコードを書いて実験!!(しましたよ)

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ