ZBLOG

var progress_bar_html = ""+ ""+""+ "" + "0%" +"" +""; $(".ProgressBar").append(prog...

在JavaScript中,没有直接的方式可以终止一个线程。但你可以通过使用setTimeout()和递归调用来模拟类似的效果。具体来说,你可以将代码块封装在一个函数中,并使用setTimeout()来延迟执行下一次循环。当满足结束条件时,即执行到return语句,不再调用下一次循环。

以下是修改后的示例代码:

function startProgressBar() {
  var progress_bar_html = "<div id='progress_bar_container'>"+ "<div id='progress_bar'>"+"</div>"+ "<span id='progress_percent' style='margin-left:70px;margin-top:68px'>" + "0%" +"</span>" +"</div>";
  $(".ProgressBar").append(progress_bar_html);

  const progressBar = document.getElementById('progress_bar');
  const progressPercent = document.getElementById('progress_percent');
  const progressBarContainer = document.getElementById('progress_bar_container');

  let obj = { progress:0, status:0 };
  
  function updateProgressBar() {
    getQsfp28(12,obj);
    console.log("progress:",obj.progress);
    console.log("status:",obj.status);

    if ((obj.progress >= 100) && (obj.status == 2 || obj.status == 4)) {
      progressBar.style.width = obj.progress + '%';
      progressPercent.textContent = obj.progress + '%';

      //显示完后消失
      progressBarContainer.style.display = 'none';
      // progressBar.style.display = 'none';
      // progressPercent.style.display = 'none';
      
      alert("设置成功");
      return;
    }

    //更新进度条
    if (obj.progress < 100) {
      progressBar.style.width = obj.progress + '%';
      progressPercent.textContent = obj.progress + '%';
    } else {
      progressBar.style.width = 90 + '%';
      progressPercent.textContent = 90 + '%';
    }

    setTimeout(updateProgressBar, 10000); //10秒后再次执行
  }

  updateProgressBar(); //开始循环执行
}

startProgressBar();

这样,代码会以10秒为间隔不断循环执行updateProgressBar()函数,直到满足结束条件时才停止循环。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17196

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?