RxJS событие throwError не направлено обработчику? - PullRequest
0 голосов
/ 11 декабря 2018

Попытка создать демонстрацию входа в систему на стеке и IIUC второй аргумент login должен получить результат throwError, но это не так.Любые идеи:

  login(username: string, password:string) {
    this.authenticate(username, password).subscribe(
      user => {
        this.ostore.put(USER_KEY, user);
        this.ostore.put(AUTHENTICATION_ERROR_KEY, false);
        this.router.navigate(['/']);
      }),
      (error)=>{
        console.log("Storing the Error");
        error => this.ostore.put(AUTHENTICATION_ERROR_KEY, AUTHENTICATION_ERROR_MESSAGE);
      }
  }


  private authenticate(username:string, password:string) {
  // Mock Authentication Check
  if (username !== 'user') {
      return throwError(AUTHENTICATION_ERROR_MESSAGE);
  }
  return of({ name: username });
  }

1 Ответ

0 голосов
/ 11 декабря 2018

Это не второй аргумент, а второй обратный вызов susbscribe, который получает ошибку.Иметь свой «логин» можно так:

login(username: string, password:string) {
  this.authenticate(username, password).subscribe(
    user => {
      this.ostore.put(USER_KEY, user);
      this.ostore.put(AUTHENTICATION_ERROR_KEY, false);
      this.router.navigate(['/']);
    },
    error => {
      console.log("Storing the Error");
      error => this.ostore.put(AUTHENTICATION_ERROR_KEY, AUTHENTICATION_ERROR_MESSAGE);
    })
}

Смотрите здесь: https://stackblitz.com/edit/angular-material-login-logout-slice-demo-knrdjs?file=src/app/auth.service.ts

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