LocalStorage.getItem('token)返回null

时间:2019-12-25 19:57:06

标签: angular typescript

在我的代码中,我需要设置标题授权(Bearer +令牌),但是当我打印它时,该载体为null,但是我的本地存储中存在一个可变令牌

代码auth.services.ts

getToken() {
    const token = localStorage.getItem('token');
    console.log(token);
    return token;
  }

token-interceptor.ts

constructor(private authService: AuthService) { }

intercept(req, next) {

  const tokenizeReq = req.clone({
    setHeaders: {
      authorization: `Bearer ${this.authService.getToken()}`
    }
  });
  return next.handle(tokenizeReq);
}

控制台中的输出

Outputs in console

网络变量

Network variables

LocalStorage LocalStorage

我不知道如何设置null。为什么会这样

2 个答案:

答案 0 :(得分:1)

我认为设置令牌需要一段时间,因为局部变量请使用await和async函数生成并设置令牌

例如:-

async setToken(token){
  await localStorage.setItem('token', token);
}

答案 1 :(得分:0)

请您尝试以下操作:

setTimeout(function() {
    let token = localStorage.getItem('token');
}, 50);

如果您试图在设置令牌后立即获取令牌值,它将无法正常工作,并且您将获得null,请在调用localStorage.getItem完成后尝试调用setItem