function()内のsetInterval()内にfetch()があり、function()外に条件clearInterval()を用意。
1回、function()を呼び出しそのまま条件clearInterval()を実行した場合はsetInterval()はしっかり停止しているが、
2回以上連続で、function()を呼び出し条件clearInterval()を実行した場合は1回目のsetInterval()は停止するが、2回目以降のsetInterval()は
chrome dev tool networkを見るとfunction()の呼び出し回数に連動してsetInterval()も重複していいて、1回目以降のsetInterval()の非停止を確認。
何故、変数名が同じなのにclearInterval()されないのか?、またどういった実行になっているのか?
がわかりません。
*補足*setInterval()内のfetch()の実行目的はリアルタイム(為替レートの様な)、秒単位で更新、
innerTextで上書きを行いたい為使用しています。
htlm
1<div id='start'></div> 2<div id='stop'></div>
javascript
1var STOP; 2function a(){ 3 STOP = setInterval( async ()=>{ 4 var API = await fetch().then(res => res.json()); 5 console.log(API)},1000); 6} 7window.addEventListener('click',(e)=>{ 8 if(e.target.id === 'start'){ a();} 9 else if(e.target.id === 'stop'){ clearInterval(STOP);} 10});
このコードでこの現象は仕方ないという場合、
setInterval()内fetch()をせずとも1秒間隔(ほぼリアルタイム)でfetchを更新できる方法があるならばご教授いただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー