bugfix> angular > 投稿

IONICとANGULARで作成されたこのアプリのイオンローカルストレージからいくつかのデータを取得しようとしています。 何を省略しているのかまだわかりませんが、プロセスがトリガーされるとデータは公開されません。

この方法ですべての必要なプラグインをインストールした後、イオンストレージにデータを設定したとしましょう :

DataStorageService
import { Storage } from "@ionic/storage";
allMoviesfavorites: MovieSelectedDetails[] = [];
  saveAtStorage(movieToSave: MovieSelectedDetails) {
     ....asigning some value to variable allMoviesfavorites...
     this.storage.set("favorites", this.allMoviesfavorites);
  }

また、同じサービスで、この方法で取得する方法を確立します

DataStorageService
import { Storage } from "@ionic/storage";
 allMoviesfavorites: MovieSelectedDetails[] = [];
constructor( private storage: Storage ) { this.loadfavoritesinStorage(); }
 
OPTION1
loadfavoritesinStorage() {
    this.storage.get("favorites").then((result) => {
      if (result == null) {
        result = [];
      }
      this.allMoviesfavorites = result;
      
    });
    return this.allMoviesfavorites;
  }
OPTION 2
 async loadfavoritesinStorage() {
    return this.storage.get("favorites").then((result) => {
       if (result == null) {
        result = [];
      }
      this.allMoviesfavorites =  result;
      console.log(result);
      
      return this.allMoviesfavorites;
    });
  }

ご覧のとおり、設定したすべてのデータのローカルストレージコンテナに到達すると、そこに到達すると、取得した結果はすべて、以前に空の配列として初期化された変数allMoviesFavoriteに割り当てられます。

次に、そのデータを公開したい要素で、ngOnInitメソッドでトリガーする機能を実行し、サービスを呼び出してtaksを実行し、サービスから取得したデータを変数moviesInFavoriteに割り当てます。これは、HTMLでループされ、すべてのデータをグラフィカルに表示します。 。 また、チェックするために持ち込まれたデータはすべてログに記録しますが、データを受け取りません

Tab
import { DataStorageService } from "../services/data-storage.service";
moviesInFavorites: MovieSelectedDetails[] = [];
  constructor(private storageservice: DataStorageService) {}
  ngOnInit() {
    this.getFavorites();
  }
  async getFavorites() {
    let moviesInFavorites = await this.storageservice.loadfavoritesinStorage();
    console.log(moviesInFavorites);
    return (this.moviesInFavorites = moviesInFavorites);
  }

どうすれば問題を改善できますか?