尝试在

时间:2021-01-28 09:21:09

标签: angular typescript

我正在尝试从前端向 apiRest 端点询问信息后获取代码,我的问题是我需要在我正在解码 JSW 令牌的信息中要求一个元素,但由于某种原因我可以' t 分配元素,我认为我的异步/承诺有问题。

我的错误被标记在 ngOninit 内的 tokeninfo.userId 上,它说下一个: 'Promise' 类型不存在属性 'UserId'

  TeamDataModel: TeamDataModel = new TeamDataModel();
  btnSubmit: HTMLButtonElement;
  UserModelData: UserModelData = new UserModelData();
  CompanyModelData: CompanyModelData = new CompanyModelData();



 ngOnInit(): void {
    this.InitForms();

 // Consiguiendo el ID del URL
    this._route.paramMap.subscribe((params => {
      if (params.has('CompanyId')) {
        this.CompanyModelData.CurrentCompanyId = params.get('CompanyId');
      }
    }));


const info: any = localStorage.getItem('_$');
const token = atob(info);
const tokeninfo = this.DecodedToken(token);
this.UserModelData.UserId = tokeninfo.UserId;
this.SelectCompanysByUserId(this.UserModelData.UserId);



   }


       async DecodedToken(token) {
  try {
    const res: ResponseModel = await this._login.DecodedToken(token).toPromise();
    if (res.Code == ECodeResponse.Ok){
     return token = res.Data;
    }

  }catch{}
}

如果您需要更多信息,请向他们索取

1 个答案:

答案 0 :(得分:0)

异步函数总是返回一个promise,所以如果你需要内容,你需要解析promise:

this.DecodedToken(token).then(tokeninfo => {
    this.UserModelData.UserId = tokeninfo.UserId;
    this.SelectCompanysByUserId(this.UserModelData.UserId);
});