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

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

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

エラーが発生しました。

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

176/210

非同期ネスト

ゲームブックアプリの進捗ですが、シナリオデータや、現在のプレイデータのインポート・エクスポート部分に手こずりましたが、ようやくチェックポイントが見えたところです。


ローカルストレージへのデータコピーや逆の読出し処理は非同期処理になります。


一つのデータに対して、一つのキーが対応します。


読み取りの例

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

this.storage.get(this.strKeyNowPlay)

.then((t_nowPlay)=>{

 何かの処理

}

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


この例では"t_nowPlay"が、ストレージから読み取られた値で、これ自体がデータ構造であっても構いません。


ですので(いくつあるか判らない)保存してある全シナリオと現在のプレイデータをひとまとめにして同時に読み書きするならば、コーディング的には手間は減ります。


ただし、その場合は次のページに進むたびに大量の(ほぼ関係ない)データをコンティニューデータ作成のためにストレージに書き出したり、あまり採用したい方法ではありません。


※ここまで書いてストレージの最大容量についての警告も必要な気がしてきました。

 いや、絶対に必要かも


その為データを読み込んで、その結果により、それぞれ異なる非同期処理を行うというコードをいきなり書いていたら、グチャグチャなコードになってきた点は大いに反省です。


ただ、やらなければいけない事の全体像が見えてくると、失敗なしにこういうコードを書くことは無理だったなと思います。


久しぶりに(文字通り)頭痛のするプログラミングになりましたが、結局、本質が複雑な問題は、整理する事は出来ても単純化できないという事ですね。







と思って一息入れて外出してたら、かなり単純な解決策を思いついてしまった・・・


とりあえず保存して、試してみます。

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

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

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

↑ページトップへ