rxjs 5を使用して、観測可能なものを購読し、最後に放出された値でストリームを開始します。演算子 '.cache'はこれのために構築されているはずですが(私は思いますが)動作させることはできません。私は観察可能な(ボタンをクリックすることにより)発火し、3秒後にそれを購読する小さなテストを行った。理論的には、サブスクリプション時にそのクリックエミッションを取得する必要がありますが、私はそうしません。rxjs5サブスクリプション時に最後に放出された値を取得
https://github.com/ReactiveX/RxJS/commit/4308a04
http://codepen.io/BradLee/pen/VaqreL
let btn = document.querySelector(`btn`),
btn$ = Rx.Observable.fromEvent(btn, `click`)
.cache(1);
setTimeout(() => {
btn$.subscribe(evt => console.log('fired'));
}, 3000);
。 3秒タイマーが起動する前にボタンをクリックすると、タイマーが起動したときにコンソールメッセージが表示されますが、表示されません。 –
これは予想される動作です。あなたは 'Observable'にまだ購読していないので、まだイベントを受け取ることはできません。私はそれを解決するためにも編集しました。 – paulpdaniels