Angular все логики авторизации c внутри сервиса - PullRequest
1 голос
/ 23 апреля 2020

Я хочу переместить все бизнес-логи c внутри службы аутентификации и на стороне компонента, я просто хочу вызвать метод Поскольку ни одна из моих функций ничего не возвращает, это нормально или они зависнут?

КОМПОНЕНТ

  credentials: Credentials = {
    email: 'pacurarudaniel@gmail.com',
    password: '123'
  }

  onLogIn(): void {
    this.authService.logIn(this.credentials.email, this.credentials.password);
  }

СЕРВИС

  public logIn(email: string, password: string): void {
    this.http.post<any>('http://localhost:3100/login', { email, password })
      .subscribe(user => {
        localStorage.setItem('TOKEN', user.token)
        this.router.navigateByUrl('/home');
      });
  }

1 Ответ

1 голос
/ 02 мая 2020

Ваши методы обслуживания не должны ничего возвращать, они не будут зависать. HttpClient в Angular работает с использованием Rx Js, который является способом выполнения асинхронного кода.

Вместо этого вы можете подписаться (или вернуть подписку) на компонент, что даст вашему компоненту больше возможностей отменить, если вы хотите.

Если вы хотите подписаться на свой компонент, вы можете использовать tap, чтобы получить необходимые данные в результате.

Для меня любой из этих способов совершенно допустимые способы настройки вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...