【发布时间】:2018-05-25 19:37:02
【问题描述】:
我有一个简单的代码,可以返回缓存的公司或数据库中的公司。问题是我几乎同时从 2 个不同的地方订阅了这个 observable。这会触发对数据库的 2 次调用,因此我只想在第一次订阅完成并且缓存值已经存在时才运行第二次订阅。有没有一些标准的方法可以通过 rxjs 操作符做到这一点?
public current(): Observable<Company> {
if (this.cachedCompany) {
return Observable.of(this.cachedCompany);
} else {
if (this.companyId == null) {
return Observable.of(null);
}
return this.companyApiService.get(this.companyId)
.map(x => {
this.cachedCompany = x;
return x;
});
}
}
提前非常感谢!
【问题讨论】:
-
你明白了吗?
标签: typescript rxjs