如何在一个类本地方法中从Javascript回调访问typescript类成员

如何在一个类本地方法中从Javascript回调访问typescript类成员,javascript,angular,typescript,callback,Javascript,Angular,Typescript,Callback,我有以下代码: export class AuthService { token: string; refreshToken: string; constructor(private router: Router) { } signinUser(username: string, password: string) { const user = new mylib.User(username, password); user.requestSession

我有以下代码:

export class AuthService {
  token: string;
  refreshToken: string;
  constructor(private router: Router) { }

  signinUser(username: string, password: string) {
      const user = new mylib.User(username, password);
      user.requestSessionToken(true, {
        onOk: function (result) {
          let tokenMap: any;
          tokenMap = result;
          this.token = tokenMap.sessionToken;
          this.refreshToken = tokenMap.refreshToken;
          mylib.Datastore.configureWithSessionToken(this.token);
          this.router.navigate(['/signup']);
        },
        onError: function (error) {
          console.error(error);
        }
      });
      console.log(this.token);
      console.log('signinUser Called!');
  }
}
mylib
是Javascript库,它没有指向我的对象,因此
this.token
不起作用
如何访问Javascript块中的类字段?

箭头函数就是答案

export class AuthService {
  token: string;
  refreshToken: string;
  constructor(private router: Router) { }

  signinUser(username: string, password: string) {
      const user = new mylib.User(username, password);
      user.requestSessionToken(true, {
        onOk: (result) => {
          let tokenMap: any;
          tokenMap = result;
          this.token = tokenMap.sessionToken;
          this.refreshToken = tokenMap.refreshToken;
          mylib.Datastore.configureWithSessionToken(this.token);
          this.router.navigate(['/signup']);
        },
        onError: (error) => {
          console.error(error);
        }
      });
      console.log(this.token);
      console.log('signinUser Called!');
  }
}
或者(老式),您可以使用
bind()
(函数(结果){…})。bind(此)

原因是在
onOK
回调中,这可能是
user
实例,而不是您的类


在处理回调时,请务必小心
这是什么

我想您应该调用
user.token
引用函数
signinUser
,因为您在对象文本之外调用它。此外,似乎
user.requestSessionToken
是异步的,因此您可能需要使用回调或承诺等待函数完成,然后才能访问
此。令牌
令牌
AuthService
类中的本地成员,而不在
user
中。请参阅此文档-