以下は、私が何をしようとしているかを説明するスニペットです。私のアプリケーションでは、全体を通して使用されているreplaysubjectがあります。特定の時点で、私は最後にsubjectから放出された値を取得したいが、last
はReplaySubjectでは機能しないようだ。ReplaySubjectから最後の値を取得するにはどうすればよいですか?
const subject = new Rx.ReplaySubject();
subject.next(1);
subject.next(2);
subject.next(3);
subject.next(4);
subject.subscribe(num => console.log(num));
var lastObserver = subject.last();
lastObserver.subscribe(num => console.log('last: ' + num));
上記のコードはlastObserver
のために何かを発射するが、うまく作品を加入していません。
これで完了した場合、他のユーザはアップデートを取得できません。 – Smeegs
そうです。新規加入者が購読するとすぐに最後の発射を受信する必要がある場合は、 'ReplaySubject' +' last'を捨て、代わりに 'BehaviorSubject'を使用してください。 – xtianjohns
私は間違った被写体を使用していると確信していますが、これが正しいかどうかはわかりません。私はその状況を説明しましょう。これは、api呼び出しの結果を送信するサブジェクトです。ほとんどの場合、加入者は最後のものではなく次の発信を望む。しかし、私は最後の放出が何であったかを見たい1つの状況があります。 – Smeegs