首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待构造函数完成初始化

等待构造函数完成初始化
EN

Stack Overflow用户
提问于 2021-06-10 13:47:14
回答 1查看 31关注 0票数 0

我有下面的代码来调用我的应用程序中的api服务。问题是,当我调用apiPost()函数时,this.apiToken值是空的。这是因为当我调用apiPost()时,构造函数还没有初始化,apiToken值还没有赋值。

代码语言:javascript
复制
this.storageService.get(constant.storage_key.api_token).then((data) => {
      this.apiToken = data;
     //Is it possible to return Observable inside here?
});

如何等待获取到apiToken后再调用this.httpAng.post()

代码语言:javascript
复制
export class MyApiService {

  apiToken = "";

  constructor(
    private httpAng: HttpClient,
    private storageService: StorageService,
  ) {
    this.storageService.get(constant.storage_key.api_token).then((data) => {
      this.apiToken = data;
    });
  }

 
  apiPost(aUrl, aParams): Observable<any> {
    let httpOptions: any = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + this.apiToken,
      }),
    }

    return new Observable((observer) => {
      // Post
      this.httpAng.post(aUrl, aParams, httpOptions).subscribe(
        async (data) => {
          switch (data['status']) {
            case 0:
              observer.next(data);
              break;
            default:
              this.alert.alertMessage(
                data['message']
                , () => {
                  observer.error(data)
                }
              )
              observer.error(data);
          }
        },
        async (error) => {
          console.log(error)
          observer.error(error);
        }
      );
    });
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-06-11 16:03:09

Angular observable return undefined results

根据上面的帖子更改了我的代码,并使用了来自rxjsswitchMapfrom

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67915436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档