2017-03-17 55 views
1

我有一个可观测的参考,我试图触发它在第一次发射(或完成?)后再次发射。是否有可能让我存储的这个引用再次出现?RxJS可观察。如何让我重新发射一次,我有一个参考

this._dashboardsObservable = this._http.get(PGDashService.MODEL_URL) 

    .map((response: Response) => { 

     this._model = this.parse(response.json()); 

     return this._model; 

    }) 
    .catch((error: any) => Observable.throw(error || 'Server error')); 

回答

2

具体而言,没有,可观察到的消费者不能强迫可观察到重新发射。观察者负责产生自己的价值观,而观察者仅仅从可观察到的价值中获得价值。

但是,我相信还有其他方法可以达成您想要做的事情。例如,使用BehaviorSubject可以让您缓存最后发送的值,以便下一个要订阅的观察者将自动获取发送给它的最后一个值。

您必须更具体地说明您实际尝试完成的任何进一步指导。

0

您可以使用publishReplay(n) - 运算符:

this._dashboardsObservable = this._http.get(PGDashService.MODEL_URL) 
    .map((response: Response) => this.parse(response.json()) 
    .catch((error: any) => Observable.throw(error || 'Server error')) 
    .publishReplay(1) // replay the last n (1) emissions 
    .refCount();  // and share it between any subscriber