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

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

setInterval 多次打印

setInterval 多次打印

慕的地8271018 2023-05-11 13:55:03
我寫了一段代碼,涉及if..elsea 中的語句,我的目標是在每次迭代 1 秒后for-loop執(zhí)行該部分的內(nèi)容。else例如,我正在打印 10 到 1。首先,10 將在 1s 9 之后打印,然后再打印 1s 8 將被打印,依此類推,直到它為 0。所以我的方法是這pgn很重要。(function () {var i, pgn = 0;for (i = 1; pgn < 10; i++) {    if (i === 1) {        console.log(10);        pgn++;    }    else {        (function countdown() {            var count1 = 9;            var myTimer = setInterval(function () {                console.log(count1);                count1 -= 1;                if (count1 <= 0) {                    clearInterval(myTimer);                }            }, 1000);         })()        pgn += 1;      }}})()它給了我這樣的結(jié)果,109999and then after several 9s, 8 8 8.. and so on until 0.然后出于好奇,我替換pgn += 1;為pgn+=10并且代碼完全按照我想要的方式工作。它打印 10,然后在第二個 9 之后打印,依此類推。有人可以解釋一下這是怎么發(fā)生的嗎?
查看完整描述

1 回答

?
Cats萌萌

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

setInterval將在給定的毫秒數(shù)過去后重復調(diào)用函數(shù)。當你增加你的循環(huán)時,1你正在創(chuàng)建多個計時器而不是一個計時器,因此一旦所有計時器到期,它們就會在控制臺中記錄值但是當你增加 step by 時,你的10循環(huán)將只運行一次并且會有一個定時器。


所有你需要的是:


var count1 = 10;

var myTimer =  setInterval(function () {

  console.log(count1);

  count1 -= 1;

  if (count1 <= 0) {

    clearInterval(myTimer);

  }

}, 1000);


查看完整回答
反對 回復 2023-05-11
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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