2016-01-22 12 views
9

最新の値を再生するAngular2 Observableを設定しようとしています。Angular2 Observables - Replay

import {Injectable} from 'angular2/core'; 
import {Observable} from 'rxjs/Observable'; 

@Injectable() 
export class RefinementService { 
    refining: any; 
    private r: any; 
    constructor() { 
     this.refining = new Observable(observer => this.r = observer).replay(1); 
    } 
} 


私は継続的にエラーが述べ得る:

プロパティ 'リプレイ' タイプ上に存在しない観察可能< {}>。

this.refining.replay


は誰もが正常に再放出すること、観察を実施している関数ではありません、それは新規加入者への最新の値ですか?

答えて

15

publishReplayに名前が変更されました 、それはあなたのお役に立てば幸いです。

だからあなたはあなたが同様にReplaySubject使用することができ、正しいオペレータ

import 'rxjs/add/operator/publishReplay'; 

// Component 
this.refining = new Observable(observer => this.r = observer).publishReplay(1); 

を追加することで問題ないはずです。

1

私はあなたのコードをこのようにREFACTしようと思う:https://plnkr.co/edit/TrCf8JEGO1toEMqiWg3D?p=preview:ここ

import {Injectable} from 'angular2/core'; 
import {Observable,ReplaySubject} from 'rxjs/Rx'; 

@Injectable() 
export class RefinementService { 
    refining: any; 
    private r: any; 
    constructor() { 
    this.refining = new Observable(observer => this.r = observer) 
     .subscribe(new ReplaySubject(1)); 
    } 
} 

は、対応するplunkrです。

RxJS5replayためMIGRATIONガイドによるとティエリー

関連する問題