In meinem AccountService habe ich ein Dialogfeld, das den Benutzer nach Benutzername/Passwort fragt, die eine Zusage zurückgibt. Wenn sie auf Schließen klicken, anstatt zu verwerfen, und die Prüfer die Daten benötigen, bevor sie auf Schließen klicken können, möchte ich mich mit den Daten anmelden, die eine Observable zurückgeben.Angular 2 Warten auf Versprechen und beobachtbare zu lösen
loginModal() : boolean {
this.dpDialogService.input(
'Login',
[
{
label: 'Username/Email',
form: 'username',
data: '',
validators: [Validators.required],
validatorMsg: 'Username is required.'
},
{
label: 'Password',
form: 'password',
data: '',
validators: [Validators.required],
validatorMsg: 'Password is required.',
type: 'password'
},
]
).then(
close => {
this.login({username: close.username.value, password: close.password.value}).subscribe(
loginResult => {
return true;
},
errorResult => {
this.dpDialogService.error('Invalid username/password.');
return false;
}
)
},
dismiss => {
return false;
}
);
}
Wie gebe ich diesen boolean von der Funktion zurück. Ich schätze, ich muss ein Versprechen verwenden, aber nicht sicher, wie mit ihnen verschachtelt werden.
so, Sie verstehen dass der Code in '.then (close => {' gibt nichts zurück –
Ja das ist, was ich versuche herauszufinden, ich möchte ein kombiniertes Ergebnis aus den verschachtelten Aufrufe. – user1779362
'Ich möchte ein kombiniertes Ergebnis aus den verschachtelten Anrufe '- hmmm, nicht sicher, was Sie damit meinen ... kombiniert Ergebnis schlägt vor, mindestens zwei Ergebnisse zu einem ... –