【问题标题】:Angular2+ caching practices [duplicate]Angular2+缓存实践[重复]
【发布时间】:2018-03-23 01:02:25
【问题描述】:

我正在尝试使用 Angular 2 并缓存从后端服务接收到的值。我注意到我遇到了以下模式 - 使用带有未定义初始值的 BehaviorSubject 并过滤它以推迟显示依赖于从后端接收的值的控件。

private _lazyValue: BehaviorSubject<ILazyValue> =
    new BehaviorSubject<ILazyValue>(undefined);

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

内模板:

<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>

问题:这个有点可疑的表达有什么捷径:

this._lazyValue.filter(val => val !== undefined)

我会以某种方式滥用BehaviorSubject吗?

【问题讨论】:

    标签: angular typescript rxjs


    【解决方案1】:

    你可以这样写:

    this._lazyValue.filter(Boolean)
    

    看起来更干净。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      相关资源
      最近更新 更多