У меня есть компонент для входа и простой метод:Угловое 2, Наблюдаемые - вернуть некоторые данные из подписываться
login(event) {
event.preventDefault();
this.authService.login(this.user);
}
Это мой AuthService
:
export class AuthService {
constructor(private jsonApiService:JsonApiService) {
}
isLoggedIn: boolean = false;
login(user:User): any {
this.jsonApiService.post('/token', user)
.subscribe(
resp => {
check if success,
store token to localstorage,
set isLoggedIn = true
* return new object with data about success/error
},
err => {
handle error
* return new object with data about success/error
});
}
logout(): void {
this.isLoggedIn = false;
}
}
Этот код работает отлично. Я получаю ответ, но мне интересно, как вернуть некоторые данные из службы в компонент. Я не хочу переводить подписку на компонент, потому что, я считаю, обработка должна быть в AuthService.
Вы можете сохранить ваши данные в 'AuthService', а затем запросить данные через GET-метод, который ваш компонент может вызывать. Вы также можете сделать этот метод в качестве наблюдаемого, чтобы ваш компонент подписался на нем. Это позволит 'AuthService' до того, как компонент получит данные. – John