使用RxJs 5角4RxJs:共享使用异步可观察/等待
我想分享一个可观察的,这样我只能让1个Http请求,我也希望让我去等待来电当我请求它的结果。我有以下代码:
export class DataService {
constructor(public http: HttpClient) {
this.getObservable();
}
public observable;
public getObservable() {
const url = "api/getData";
this.observable = this.http.get(`${this.baseUrl}${url}`).share()
}
public async hasData(data: DataEnum) {
const result = await this.observable.toPromise();
return result.filter(x => x === data).length > 0;
}
}
但是,许多调用hasData导致了许多调用我们的API端点。我假设我已将observable
设置为共享的观测值,当我打电话给.toPromise()
时,它只会获取缓存的值并将其作为承诺,我可以await
。
这是应该如何工作?
你为什么要这么做?我们可以用更好的技术来帮助你? – Microsmsm
如果您已经使用承诺,是否有某些事情阻止您保存承诺?这将是非常简单的。共享运营商无法按照您的预期工作。 – estus
@Microsmsm代码被简化了:)当应用程序加载时,我需要知道在哪里指导用户 - 因此需要等待结果。该数据还包含HTML模板中请求的其他一些信息,因此我们会收到很多电话,我想分享。 – user917170