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

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

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

エラーが発生しました。

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

144/210

RxJSをStorageの書き込みに使ってみた①

前回からの続きです。


RxJSの使い方を十分理解しているとは言いかねるので、まずはドメインをまたいだJSONPデータの取得の例から見ていきます。


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

 //JSONP の取得テスト

 let urlhoge = '外部ドメインのデータのアドレス';

 let ObsebTest = this.http.jsonp(urlhoge, '');

 ObsebTest.subscribe(this.observer_1);


 //Subscribe内で動かす関数(と書きましたがよく考えるとJSONなので動作定義と言うべきもの?)

 observer_1 = {

  next: x => this.testJSON(x), //読み込み成功時

  error: error => console.log('Observer1 got an error:'),//エラー時

  complete: () => console.log('Observer1 got Complete'), //終了時

 }; // データを受け取った時に何をするのかが書かれている

 //読み込んだデータを内部変数にコピーする関数

 testJSON(x:JSON){

  this.fromJSONP=JSON.parse(JSON.stringify(x));

  alert(this.fromJSONP["singleParameters"][1]["name"])

}

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


上の例では


・Observableオブジェクト"ObsebTest"を"this.http.jsonp(urlhoge, '')"として定義

 (".http.jsonp"とあるが、この時点ではネットにアクセスしているわけでは無い)

・上で定義したObsebTestをsubscribe(this.observer_1)メソッドで動かす


・上の引数のobserver_1は非同期の胆になる部分で、成功・失敗・終了の3つの考えられる非同期の結果に従って行う処理を定義しています。


※この辺り、今日、色々見たおかげで誤解していたことがよく判りました。

 (今でも理解は十分でないですが)


まずはStorageへの書き込みをObservableオブジェクトを使った方法に書き換えてみます。



・・・・・・・・・・・・・



実の所、試行錯誤しまくりなんですが、出来は良くないものの書き換え(の一例)自体は成功です。


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

import { Observable } from 'rxjs';


中略


const obs =new Observable((sub=>{

 //sub.next()

 //sub.complete()

 //console.log(sub)

 成功時の何らかの処理

}))

obs.subscribe(this.storage.set(キー, セットする値))

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


動くけれど、エラー処理は無いし色々おかしいコードです、いや本当に。


ただ、そこまでに至る試行錯誤は見せられるようなものじゃないので、ここをスタート地点にして何とかしてみたいと思います。


ま、現状の方法でも行けることは行けるようですがRxJSとやらにもう少し慣れてみたいと思います。

(見ていて気付きましたがAngularのデータバインディングとかも、この辺使ってるんでしょうね)



なお現在のセーブデータ保存のロジックは以下のように書いて有ります。

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

  this.storage.set(キー, 値JSON)

  .then((t)=>{ //保存成功時の処理

    中略

  })

  .catch((err)=>{ //エラー時の処理

    中略

  });

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


これもWeb上のコードを見よう見まねで書いたモノなので理解が足りてないですね。

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

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

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

↑ページトップへ