最新の値を再生するAngular2Observableをセットアップしようとしています。
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);
}
}
次のようなエラーが繰り返し発生します。
プロパティ 'replay'はタイプObservable <{}>に存在しません。
そして
this.refining.replayは関数ではありません
新しいサブスクライバーに最新の値を再送信するオブザーバブルの実装に成功した人はいますか?
[〜#〜] migration [〜#〜] ガイドによると RxJS5replay
はpublishReplay
に名前が変更されました。
したがって、正しい演算子を追加することで問題がないはずです
import 'rxjs/add/operator/publishReplay';
// Component
this.refining = new Observable(observer => this.r = observer).publishReplay(1);
ReplaySubject も使用できます。
私はあなたがあなたのコードをこのように再現しようとすることができると思います:
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));
}
}
対応するプランカーは次のとおりです: https://plnkr.co/edit/TrCf8JEGO1toEMqiWg3D?p=preview 。
それがあなたを助けることを願っています、ティエリー