【问题标题】:Lazy property for http get requesthttp get 请求的惰性属性
【发布时间】:2018-11-14 11:54:38
【问题描述】:

我想在服务中创建一个惰性属性,这意味着 - 我想要一个(可以说)布尔成员,它应该由 get 请求初始化。 该属性检查成员是否已经初始化: 1. 如果是这样 - 它返回值或该值的可观察值。 2. 如果不是 - 执行 get 请求,初始化成员,然后返回值(或 observable)。 this.getIsTrue 是一个 http 获取请求。 在服务中查看我的代码:

isTrue: boolean = null;
get IsTrue() : Observable<boolean> // It can return even boolean and not 
                                       observablle
{
    if (this.isTrue!= null)  
    {
       return of(this.ifTrue); // can return even boolean and not 
                                  observablle 
    }
    else
    {
      this.getIsTrue().subscribe(result => { 
      this.isTrue = result;
      return of(this.isTrue);});
    }
}

【问题讨论】:

    标签: rxjs angular2-services angular-observable


    【解决方案1】:

    如果您需要制作副作用而不是订阅它,您可以使用tap

    return this.getIsTrue().pipe(
      tap(result => this.isTrue = result),
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多