Wie machen synchronen Aufruf im Winkel 4 in "Komponenten" - Methode

Habe ich eine Eckige 4 login-Anwendung. Ich habe geschrieben der Zugriff auf die Logik in der login.cmponent.ts-Datei und Zugriff auf meine Anmeldung.service.ts-Datei, die ihrerseits wieder Aufrufe eine Authentifizierung service.

Mir beim Aufruf von authenticate-Methode aus meinem login-Komponente, gibt Sie false zurück. Durch die Ausführung restlichen code dann authentication service gibt true zurück, weil wir wissen, Winkel-code ausführen, der in asynchroner Weise.

Dies ist mein code:

Login-Komponente Methode:

this.loginService.setLoginData(
    new LoginModel( this.userId, this.bankId, this.password )
  ).checkIfLoginSuccessfull();

Login.service-Methode:

this.authService
  .attemptAuth(credentials);

Authentication Service Methode:

attemptAuth(credentials): void {

  this.restService
    .post('/authenticate', credentials)
    .subscribe(
    data => this.setAuth(data.token),
    err => this.destroy());

}

Code ist in Ordnung. Aber ich möchte, um Ergebnisse zu dem moment, als ich fertig ausführen checkIfLoginSuccessfull(). Ich weiß, ich bin nicht zu tun oder zu aufrufen von Methoden ( Observablen richtig ).

Bitte helfen. 🙂

Sie können nicht entkommen asynchronism. Die Umwandlung eines asynchronen Aufruf zu einer synchron ist einfach nicht möglich (oder wünschenswert).
Versuchen Sie nicht, um den Anruf sync, lieber lernen, wie Kette verspricht und observablen. Es gibt viele tutorials. Dies ist eine der häufigsten Fragen. Die Frage enthält nicht genügend code, um konkrete Vorschläge.
Es ist nur 3 level-Methode aufrufen. Letzte authService ausführen von code richtig. Wie kann ich die Kette, damit ich Zugriff auf das gewünschte Ergebnis im ersten LoginComponent Methode, sobald die Zeile ausgeführt wird.

InformationsquelleAutor Aakash Kumar | 2017-09-15

Schreibe einen Kommentar