【问题标题】:Unable to store the access token in angular constructor无法将访问令牌存储在角度构造函数中
【发布时间】:2019-07-29 03:12:18
【问题描述】:

我能够获取访问令牌,但无法在角度服务的构造方法中使用。 console.log 只是打印令牌,但它没有被分配给我需要做的变量。

我的部分代码。

    constructor(private http: HttpClient) { 
        // get the access_token  via Node JS 
        this.http.get(this.apiUrl + '/api/getToken').subscribe(d=>{
        this.token = JSON.stringify(d);
        console.log(this.token);
      })
    }

【问题讨论】:

  • 我无法在函数中使用 this.token 变量,我试图将它作为不记名令牌传递来调用 api 以获取数据
  • 你的 node api 工作正常吗?你能确保它没有抛出任何错误吗?如果您共享您的节点 api 代码 sn-p 将有助于调试。
  • @ShamsNahid 是的,api 可以完美运行,因为我可以在控制台中看到打印的访问令牌,但变量不包含构造函数外部的值
  • get 方法正在返回一个 Promise。也许您正试图在解决承诺之前访问令牌。您应该尝试在解析 api 请求后调用令牌。

标签: node.js api token


【解决方案1】:

如果需要在构造函数中使用token,请确保已经收到。

    constructor(private http: HttpClient) { 
        this.http.get(this.apiUrl + '/api/getToken').subscribe(d=>{
            this.token = JSON.stringify(d);
            console.log(this.token);
            // do your stuff
            // or invoke your method
      })
    }

或者,如果您想在另一种方法myMethod 中使用令牌执行一些特定的操作,试试这个

        myMethod(private http: HttpClient) { 
            this.http.get(this.apiUrl + '/api/getToken').subscribe(d=>{
                this.token = JSON.stringify(d);
                console.log(this.token);
                // some operation, involved with token
          })
        }

在这种情况下,确保令牌在使用前被检索并可用。

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 2017-06-24
    • 2016-07-27
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2019-11-16
    • 2012-07-18
    • 2021-10-07
    相关资源
    最近更新 更多