J'ai commencé à utiliser Angular2 Observable
, mais je ne peux pas trouver quelque chose de similaire .then
que j'ai utilisé avec Promises
.
C'est ce que je veux accomplir.
code d'en-tête.composante.ts
public login() {
this._user = AuthService.getInstance().login(this._loginInfo);
}
code d'auth.service.ts
return this._httpClient.post('LoginAction', credentials)
.map(res => res.json())
.subscribe(user => {
return new User(user);
});
Avec des promesses, login
fonction serait de retour la Promesse, qui a fini par transformer de réelle réponse du serveur. Mais avec Observables cela ne fonctionnera pas.
Est-il un moyen de faire la même chose? Je veux éviter la nécessité de mettre abonnez-vous à l'intérieur d' component
s' login
fonction. Je veux être en mesure de faire tout le travail dans les services et de retour de l'objet réel à l' component
.
Aussi, j'ai essayé de créer Promise
, avec toPromise
, mais je reçois toPromise is not a function
.
p.s. _httpClient est mon wrapper autour de angular2 http dans lequel je demande de préparation en ajoutant des en-têtes, etc.
modifier
return this._httpClient.post('LoginAction', credentials)
.map(res => res.json())
.toPromise(). <-- i keep getting that it is not a function
then(user => {
return new User(user);
});
en faisant cela, mon composant obtiendrez objet (qui est ce qu'il faut), et dans le service que je pouvais faire des choses (comme l'enregistrement de l'utilisateur pour localstorage, une fois que j'ai connecté lui).
Et je suis passé à l' Promise
, car faire de même avec Observable
ne fonctionne pas (ou je me suis fais mal)?
Je vois que l'objet retourné est Observable (avant d'appeler toPromise), mais je ne vois pas toPromise
fonctionnent bel et bien.