2 回答
TA贡献1801条经验 获得超15个赞
考虑一个 Promise,它在循环内 1 秒后解析:await
async function tempsJoueur() {
const temps = document.getElementById("time");
for (let val = 30; val >= 0; val--) {
temps.textContent = String(val).padStart(2, '0');
await new Promise(res => setTimeout(res, 100)); // changed to 100 for demo
}
}
tempsJoueur();
<div id="time"></div>
TA贡献1816条经验 获得超6个赞
您可以使用如下所示的 setInterval。
setInterval重复调用函数或执行代码片段,每次调用之间有固定的时间延迟。它返回一个唯一标识间隔的间隔 ID,因此您可以稍后通过调用 clearInterval() 将其删除
let interval;
let temps = document.getElementById("time");
let time = 10;
function startTimer() {
if (time >= 0) {
temps.textContent = temps.value = (" " + time + " ");
time--;
} else {
clearInterval(interval);
}
}
function tempsJoueur() {
if (interval) {
clearInterval(interval);
}
time = 10;
interval = setInterval(startTimer, 1000)
}
<div id="time"> </div>
<input type="button" value = "start timer" onclick="tempsJoueur()" />
添加回答
举报