如何檢查服務是否已完成,然後運行代碼的其餘部分?
例如:
我想從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
,它不立即獲取數據。
我該如何解決這個問題?
編輯:
我這是怎麼叫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