文章内容

2022/10/12 15:10:23,作 者: 黄兵

setInterval() 理解

setInterval() 用于定时执行一个任务,其语法如下:

var intervalID = setInterval(func, [delay, arg1, arg2, ...]);
var intervalID = setInterval(function[, delay]);
var intervalID = setInterval(code, [delay]);
func

要重复调用的函数,每经过指定 delay 毫秒后执行一次。第一次调用发生在 delay 毫秒之后。

code

这个语法是可选的,你可以传递一个字符串来代替一个函数对象,你传递的字符串会被编译然后每经过 delay 毫秒执行一次。

delay

是每次延迟的毫秒数(一秒等于 1000 毫秒),函数的每次调用会在该延迟之后发生。如果未指定,则其默认值为 0。

arg1, ..., argN 可选

当定时器过期的时候,将被传递给 func 函数的附加参数。

同时我们可以使用 clearInterval() 来取消定时任务。

下面的代码展示了使用 setInterval() 和 clearInterval() 来执行定时任务和取消定时任务的方法:

let interval = setInterval(download_progress, 500)

function download_progress() {
const fetchInit = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
};
const request = new Request("/progress/" + thread);
fetch(request, fetchInit).then(function (response) {
return response.json();
}).then(function (response) {
const progress = parseInt(response.progress);
circularProgress.foundation.setProgress(progress / 100);
if (progress === 100) {
// 进度完成,清除定时器
clearInterval(interval);
// 关闭进度
circularProgress.foundation.close();
document.querySelector('.mdc-button').disabled = false;
const btnLabelEle = document.querySelector(".label-wrapper");
btnLabelEle.style.display = 'block';
document.querySelectorAll(".query-result-container").forEach(el => {
el.style.display = "block";
});
}
});


参考资料:

1、setInterval()

2、WindowTimers.clearInterval()


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - setInterval() 理解

分享到:

发表评论

评论列表