Не удалось получить данные из службы Angular 8 - PullRequest
1 голос
/ 18 марта 2020

Метод в компоненте -

        login(loginForm: NgForm) {
          debugger;
          let verifyUser;
          this.aService.verifyUser(loginForm.value.userName).subscribe(
         (data) => {verifyUser = data; },
         error => {console.warn(error); },
         () => {console.log("Success");}
      );
     if (verifyUser !== 1) {
      this.userNotFound = true;
    } else {
      sessionStorage.setItem('loginedUser', loginForm.value.userName);
      console.log(sessionStorage.getItem('loginedUser'));
    }

service -

public verifyUser(user: string) {
    debugger
    let returnValue;
    const url = 'https://localhost:44308/api/auth/verifyUserName?username=' + user;
    returnValue = this.http.get(url).pipe(
      tap(
        data => console.log('data' + data),
        error => console.error(error)
      )
    );
    return returnValue;
  }

Я получаю зарегистрированные данные в консоли в методе tap в службе, но не могу использовать их в компоненте, на который я подписываюсь Это. Даже это сообщение об успешном ведении журнала в компоненте.

Ответы [ 2 ]

0 голосов
/ 18 марта 2020
public verifyUser(user: string) {
debugger
const url = 'https://localhost:44308/api/auth/verifyUserName?username=' + user;
return this.http.get<any>(url).pipe(
  tap(
    data => console.log('data' + data),
    error => console.error(error)
  )
);
}
0 голосов
/ 18 марта 2020

Может ли асинхронный характер возвращать неопределенное значение?

Изменить на:

public verifyUser(user: string) {
debugger
const url = 'https://localhost:44308/api/auth/verifyUserName?username=' + user;
return this.http.get(url).pipe(
  tap(
    data => console.log('data' + data),
    error => console.error(error)
  )
);

}

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