サービスが完了した後、残りのコードを実行するにはどうしたらいいですか?
例:
私はこのようなAPIのいくつかのデータを取得したい:角2サービスが完了したかどうかを確認します
get_user_info(token: string): Observable<any> {
return this.http.get(this.home + 'api/home/account/excerpt?token=' + token)
.map((response: Response) => {
return response.json().result;
});
}
を、私はget_user_info
からデータをサブスクライブしたい:
retrieve_user_info() {
this.http.get_user_info(this.back_result.token).subscribe(
(result: sendBackUserInfo) => {
if (result.result == 1) {
this.user_info = result.user;
} else {
console.log(result.messages[0]);
}
}
);
}
が、私が呼ぶときに問題があります機能retrieve_user_info
、すぐにデータを取得しません。
どうすれば修正できますか?
EDIT:
これは私がretrieve_user_info
を呼び出す方法です:
submit_login_form() {
this.http.login_user(this.username, this.password, this.result.language.code)
.subscribe((result: loginSendBackResult) => {
this.back_result = result;
this.retrieve_user_info();
if (this.back_result.result == 1) {
this.show_modal = false;
console.log(user_info);
router.navigate(['home']);
}
});
}
あなたは "この問題を解決する" ことができない、これは非同期です。データに何をする必要があれば、コールバックの中でそれを行う必要があります:) – Alex
実際にそのデータを使用するコードを表示してください。あなたは '@Input()'をいくつかのコンポーネントに送るか、それとも何をしますか? –
@deezg質問が更新されました – amirsa00