【问题标题】:Wait until the constructor finishes the initialization等到构造函数完成初始化
【发布时间】:2021-06-15 09:54:49
【问题描述】:

我有下面的代码来调用我的应用程序中的 api 服务。 问题是当我调用apiPost() 函数时,this.apiToken 的值是空的。 发生这种情况是因为当我调用 apiPost() 时,构造函数尚未初始化,apiToken 的值尚未分配。

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()

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);
        }
      );
    });
  }
}

【问题讨论】:

    标签: angular typescript ionic4


    【解决方案1】:

    Angular observable return undefined results

    根据上面的帖子更改了我的代码并使用fromrxjsswitchMap

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多