私はJwtService
というサービスを持っています。このサービスには、ユーザーデータを取得するメソッドがあります。私は私のコンポーネントでこのメソッドを呼び出します。他のコンポーネントからのhttp.getが終了した後の角2実行メソッド
this.JwtService.getUserData();
、私は私のコンポーネントのボタンをクリックしたときに - 私は、このメソッドを呼び出します。
this.updateMoves();
JwtService
サービスのデータに動作します: このメソッドが呼び出された後、私は別のローカルメソッドを呼び出します。
this.JwtService.getUserData();
は、新しいデータの実行と更新が完了しておらず、古いデータでthis.updateMoves();
が実行されていません。
不要なソリューション:サービスにupdateMoves()
方法を移動し、応答が受信された後、それを呼び出してそれを動作させることができますが、この方法で以来、私はしたいが、それをしない、特定の一つの成分に属しています。
不要な解決策2:新しいサービス変数IS_LOADED
を読み込み、読み込みが完了したら自分のコンポーネントをチェックインします。それは私のアプリでいくつかの問題が発生します。
サービスデータを受信した後にupdateMoves()
を実行すると思われるその他のソリューションはありますか?
マイgetUserData()メソッド:
getUserData()
{
this.good = false;
if (this.getToken()) {
this.http.get('user/info?token='+this.getToken())
.map((res:Response) => res.json())
.subscribe(
data => {
this.userData = data.user;
this.LOADED = true;
},
err => { this.checkToken(err); }
);
}
}
あなたはそれの後に他のすべてを実行することができますので、あなたは、あなたの 'getUserData()'メソッドから観測を返すことができ – shershen
が何が起こっているかを推測、ポストにあなたのComponentクラスのコードとデコレータを追加ハードトップなければなりません成功した。 – rinukkusu