Rxjs http get请求的惰性属性

Rxjs http get请求的惰性属性,rxjs,angular2-services,angular-observable,Rxjs,Angular2 Services,Angular Observable,我想在服务中创建一个lazy属性,这意味着——我想有一个(比方说)布尔成员,它应该由get请求初始化。 属性检查成员是否已初始化: 1.如果是,则返回值或该值的可观察值。 2.如果不是-执行get请求,则初始化成员,然后重新返回值(或可观察值)。 this.getIsTrue是一个http get请求。 请参见服务中的“我的代码”: isTrue: boolean = null; get IsTrue() : Observable<boolean> // It can return

我想在服务中创建一个lazy属性,这意味着——我想有一个(比方说)布尔成员,它应该由get请求初始化。 属性检查成员是否已初始化: 1.如果是,则返回值或该值的可观察值。 2.如果不是-执行get请求,则初始化成员,然后重新返回值(或可观察值)。 this.getIsTrue是一个http get请求。 请参见服务中的“我的代码”:

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);});
    }
}
isTrue:boolean=null;
get IsTrue():Observable//它可以返回布尔值,也可以不返回
可观察
{
if(this.isTrue!=null)
{
返回(this.ifTrue);//可以返回偶数布尔值,也可以不返回
可观察
}
其他的
{
this.getIsTrue().subscribe(结果=>{
this.isTrue=结果;
归还(这是真的);
}
}

如果您需要产生副作用而不是订阅副作用,可以使用
点击

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