をリセットし、私は、関連するアプリケーションで、次のライブラリを使用しています:角度4.xでは、ngrx 4.xのは、5.4.xrxjsポーリングして、手動でtimerwhenリフレッシュ
をrxjs私は私が必要とするAPIを持っています5分ごとに投票します。ユーザーは手動でデータを更新することもできます。そのデータはngrxストアに格納されます。私はngrxエフェクトを使用しているので、データは 'FETCH'型のアクションをディスパッチすることによって取り出されます。
nxrxストアに 'FETCH'アクションをディスパッチするrxjsストリームをセットアップしたいとします。これは、ユーザーが手動でストアを更新するときにリセットされるスライド式の5分タイマーです。ストリームは、購読時に最初に値を送出する必要があります。
タイマーをリセットする方法がわかりません。プレーンなJavaScriptで私は次のような何かをするだろう:
console.clear();
let timer;
let counter = 0;
function fetch() {
console.log('fetch', counter++);
poll();
}
function poll() {
if (timer != null) {
window.clearTimeout(timer);
}
timer = window.setTimeout(() => {
console.log('poll');
fetch();
}, 5000);
}
function manualGet() {
console.log('manual');
fetch();
}
fetch();
<button onClick="manualGet()">Get Data</button>
質問:どのように私は別の流れが再び例のように発する時にリセットされた間隔で放出するのですか?