无法在承诺中设置this.property

时间:2017-04-28 21:26:14

标签: javascript scope promise this

我有一个属性token,我想在一个方法的回溯中初始化它。

不幸的是,我收到了这条消息

  

无法设置未定义的属性'token'

当我尝试将access_token的值放在属性token

中时
public token:string = "";
  signInAction(){
    new Oidc.UserManager(this.config).signinRedirectCallback().then(function (user) {
         console.log(user.access_token);
         this.token = user.access_token;
    }).catch(function (e) {
        console.error(e);
    });
  }

知道为什么。

1 个答案:

答案 0 :(得分:0)

请阅读提到的URL trincot,了解this在回调中如何运作。在您的情况下,我认为以下内容应该有效:

public token:string = "";

signInAction(){
  new Oidc.UserManager(this.config)
    .signinRedirectCallback()
    .then(user => {
      console.log(user.access_token);
      this.token = user.access_token;
     })
     .catch(e => {
       console.error(e);
     });
}