【发布时间】: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