首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2+缓存实践

Angular2+缓存实践
EN

Stack Overflow用户
提问于 2017-10-11 11:12:28
回答 1查看 38关注 0票数 0

我正在试验从后端服务接收的值的角2和缓存。我注意到了下面的模式--使用带有未定义初始值的BehaviorSubject并对其进行筛选,以推迟依赖于从后端接收的值的控件的显示。

代码语言:javascript
复制
private _lazyValue: BehaviorSubject<ILazyValue> =
    new BehaviorSubject<ILazyValue>(undefined);

get lazyValue(): Observable<ILazyValue> {
  return this._lazyValue.filter(val => val !== undefined);
}

内部模板:

代码语言:javascript
复制
<div *ngIf="lazyValue | async; else nolv; let lv">
  <app-some-control [lazy_value]="lv"></app-some-control>
</div>
<ng-template #nolv>
  <span>Loading...</span>
</ng-template>

问题:对于这个有点可疑的表达式,有什么捷径吗?

代码语言:javascript
复制
this._lazyValue.filter(val => val !== undefined)

我是否以某种方式滥用BehaviorSubject

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 11:16:27

你可以这样写:

代码语言:javascript
复制
this._lazyValue.filter(Boolean)

看起来更干净。

但是,您似乎根本不需要使用BehaviorSubject,而需要使用ReplaySubject(1)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46686772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档