第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何停止for循環(huán)中的setTimeout?

如何停止for循環(huán)中的setTimeout?

米琪卡哇伊 2018-08-18 15:08:46
有一個需求 每間隔10秒向一個div中輸出一段文字,當(dāng)循環(huán)50次以后從0開始重新循環(huán)直到點擊關(guān)閉按鈕停止循環(huán),怎么實現(xiàn)呢?下面是我之前寫的代碼,但是cleartimeout沒有生效,因為for循環(huán)又將settimeout激活了,又什么好的方法嗎?for (let i = 0, len = this.params.playTimes + 1; i < len; i++) {    this.playText = setTimeout(() => {        this.fillText(i);        var myDate = new Date();        console.log(i,myDate.toLocaleString());     }, i * this.params.speed * 1000); }// setTimeout在for中被重新激活 todoclearTimeout(this.playText);
查看完整描述

3 回答

?
慕慕731940

TA貢獻1條經(jīng)驗 獲得超0個贊

我現(xiàn)在也遇到相似問題,請教下解決方法

查看完整回答
反對 回復(fù) 2019-08-20
?
蠱毒傳說

TA貢獻1895條經(jīng)驗 獲得超3個贊

你每次調(diào)用setTimeout都會創(chuàng)建一個定時器啊……如果你只清除最后一個定時器的話沒有用

一種解決辦法是維護一個定時器列表,按鈕關(guān)閉的時候?qū)φ麄€列表調(diào)用clearTimeout
第二種方法是維護一個“需要定時刷新”Flag,計時器內(nèi)的函數(shù)通過setTimeout遞歸調(diào)用自身,并在遞歸前檢查這個Flag,如果Flag被按鈕置為false就退出遞歸


查看完整回答
反對 回復(fù) 2018-08-19
?
PIPIONE

TA貢獻1829條經(jīng)驗 獲得超9個贊

如果是要每隔十秒觸發(fā)一次,50次后終止,為何不用setInterval呢?

let count = 50let intervalKey = setInterval(() => {  // do things
  console.log('do')  if (--count === 0) clearInterval(intervalKey)
}, 10 * 1e3)


查看完整回答
反對 回復(fù) 2018-08-19
  • 3 回答
  • 0 關(guān)注
  • 1865 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號