在我的 Angular 应用程序中,我提供了请求休息 API 的服务。在进行任何调用之前,我需要从后端获取唯一的 guid 并将其作为参数传递给每个调用。所以我想我可以在构造函数中发出请求并将结果分配给这样的属性:
export class BaseApiService<T> implements OnDestroy {
private subscription: Subscription;
protected tenantGuid: string;
constructor(private http: HttpClient) {
this.subscription = this.getGuid().subscribe(data => {
this.tenantGuid = data;
});
}
private getGuid(): Observable<string> {
return this.http.get<string>(`${this.baseUrl}/api/Tenants`);
}
}
但是在派生服务中执行构造函数后,属性tenentGuid仍然未定义。
export class TasksService extends BaseApiService<TaskModel> {
constructor(private httpClient: HttpClient) {
super(httpClient);
}
public list(): Observable<TaskModel[]> {
return this.httpClient.get<TaskModel[]>(this.generateUrl(), {params: {tenantguid: this.tenantGuid}})
}
}
我知道这与异步相关,但我不知道如何以另一种方式实现结果。
任何建议将不胜感激)