在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助手提供,问题来源于学员提问