我有一個Angular 4登錄應用程序。我已經在login.cmponent.ts文件中寫入了訪問邏輯,並訪問了我的login.service.ts文件,該文件又調用了一個身份驗證服務。如何在組件方法中同步調用Angular 4
當我從我的登錄組件調用身份驗證方法時,它返回false。當它執行剩餘的代碼時,認證服務返回true,因爲我們知道Angular運行代碼以異步的方式。
這是我的代碼:
登錄分量法:
this.loginService.setLoginData(
new LoginModel(this.userId, this.bankId, this.password)
).checkIfLoginSuccessfull();
Login.service方法:
this.authService
.attemptAuth(credentials);
驗證服務的方法:
attemptAuth(credentials): void {
this.restService
.post('/authenticate', credentials)
.subscribe(
data => this.setAuth(data.token),
err => this.destroy());
}
代碼工作鰭即但是我想在執行checkIfLoginSuccessfull()的那一刻得到結果。我知道我沒有做或調用方法(Observables正確)。
請幫忙。 :)
不能從異步逃脫。將異步調用轉換爲同步調用是不可能的(也是不可取的)。 –
不要試圖使呼叫同步,而是學習如何鏈接承諾和觀察。有很多教程。這是最常見的問題之一。這個問題沒有包含足夠的代碼來提出具體的建議。 –
這只是3級方法調用。最後一個authService正確執行代碼。我如何鏈接它們,以便在執行該行時,在第一個LoginComponent方法中訪問所需的結果。 – user3095179