全局打字稿变量在 subccribe

时间:2021-03-17 02:48:29

标签: angular typescript scope

这是我已将令牌值分配给全局 this.token 变量的身份验证服务文件,但我无法在订阅之外获取 this.token 的值。由于我是这方面的新手,请指出我为此所做的错误。您的回答将不胜感激!

import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import { Router } from '@angular/router';
import { User } from './user.model';

@Injectable({providedIn: 'root'})
export class AuthService {

  private token: string;

  constructor(
    private httpClient: HttpClient,
    private router: Router
  ){
  }

  getToken() {
    return this.token;
  }

  signup(username: string, email: string, password: string) {
    const user: User = {
      username: username,
      email: email,
      password: password
    }

    this.httpClient.post<{success: boolean, message: string}>('http://localhost:3000/signup', user)
    .subscribe((responseData) => {
      if(!responseData.success){
        console.log(responseData.message)
      }
      else{
        console.log(responseData.message)
      }
    })
  }

  login(email: string, password: string){
    const user: User= {
      username: null,
      email: email,
      password: password
    }

    this.httpClient.post<{token: string}>('http://localhost:3000/login', user)
    .subscribe((responseData) => {

      const auth_token = responseData.token;
      this.token = auth_token;
      console.log(this.token)
    })
    console.log(this.token)
  }

}

0 个答案:

没有答案