Comment faire appel synchrone Angulaire 4 composant de méthode

J'ai Angulaire 4 connexion de l'Application. J'ai écrit accéder à la logique dans la connexion.cmponent.ts de fichiers et d'accéder à ma connexion.service.ts fichier qui à son tour appelle à nouveau un service d'authentification.

Quand je l'appelle méthode d'authentification de mon composant login, elle retourne false. Par le temps qu'il exécute reste du code, puis le service d'authentification renvoie la valeur true parce que nous savons Angulaire exécuter du code en asynchrone.

C'est mon code:

Composant Login Méthode:

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

De connexion.Méthode de service:

this.authService
  .attemptAuth(credentials);

Service d'authentification de la méthode:

attemptAuth(credentials): void {

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

}

Code fonctionne bien. Mais je veux obtenir des résultats le moment, j'ai fini de l'exécution de checkIfLoginSuccessfull(). Je sais que je ne fais pas ou appels de méthodes ( Observables correctement ).

S'il vous plaît aider. 🙂

  • Vous ne pouvez pas vous échapper asynchronism. La transformation d'un appel asynchrone à un synchonous l'on est juste pas possible (ni souhaitable).
  • N'essayez pas de faire l'appel de synchronisation, plutôt apprendre à la chaîne des promesses et des observables. Il y a beaucoup de tutoriels. C'est l'une des questions les plus fréquentes. La question ne contiennent pas assez de code pour faire des suggestions concrètes.
  • Il est à seulement 3 niveau de l'appel de méthode. Dernière authService l'exécution de code correctement. Comment puis-je de la chaîne d'eux donc j'ai accès au résultat souhaité en premier LoginComponent méthode une fois que la ligne s'exécute.
InformationsquelleAutor Aakash Kumar | 2017-09-15