制作一个简单的javascript计时器
嘿,我正在尝试为discord APIjavascript上的一个应用程序制作一个20秒的小计时器……我在网上得到了很多答案,但没有一个被证明是成功的。有人能帮我吗?这是我最初编写的代码制作一个简单的javascript计时器,javascript,Javascript,嘿,我正在尝试为discord APIjavascript上的一个应用程序制作一个20秒的小计时器……我在网上得到了很多答案,但没有一个被证明是成功的。有人能帮我吗?这是我最初编写的代码 setTimeout(function(){ var af = 0; while(af<21){ af = af+1; if(af == 20){ break; } console.log(af);} }, 1000); message.reply("ch
setTimeout(function(){ var af = 0; while(af<21){ af = af+1; if(af == 20){ break; } console.log(af);} }, 1000);
message.reply("check the console"); // Part of the discord.js library...nothing to do with the timer
但是var af并没有每秒减少1…它在不到一秒钟内变成了20。。i、 e设置超时没有被跟踪..你能帮我吗?如果你想每X秒做一件事,你可以使用setInterval
setInterval(function(){
//code goes here that will be run every 1 seconds.
}, 1000);
如果你想做一件事,但有延迟,你可以使用setTimeout
setTimeout(function() {
//code will run after 30 seconds
}, 30000);
setTimeout(function() {
message.reply("check the console");
}, 20000);
所以我想你应该这样做:
var af = 20;
function myTimer() {
if(af === 0) {
message.reply("check the console");
clearInterval(timer);
} else {
af = af - 1;
console.log(af);
}
}
var timer = setInterval(function(){ myTimer() }, 1000);
或者只使用setTimeout
setTimeout(function() {
//code will run after 30 seconds
}, 30000);
setTimeout(function() {
message.reply("check the console");
}, 20000);
你的问题不清楚。 您希望af每秒减少还是增加1 如果希望af从20开始到0结束每秒钟减少1
var af = 20;
a = setInterval(function(){
console.log("Hi");
af = af-1;
if(af == 0){
clearInterval(a);
}
console.log(af);
}, 1000);
这将每秒调用一次函数。您似乎对setTimeout方法的工作原理以及函数执行的工作原理有误解。运行以下代码时,您可以:
setTimeout(function() {
var af = 0;
while(af<21){
af = af+1;
if(af == 20){ break;}
console.log(af);
}
}, 1000);
i、 e没有跟踪setTimeout-是的,跟踪了。首先是一秒钟的延迟,然后您的函数运行一次,没有进一步的延迟-这正是setTimeout的目的。你读过什么书吗?为什么你的问题有数组标签?是的,我读了一些JS定时器文档…但它们在我的代码中不起作用..倒计时从20到19发生过一次,然后就停止了..也为数组标签感到抱歉..它是错误的,我现在删除了..但是你能帮我处理这段代码吗?比如,我应该做什么样的更改才能使代码按我希望的方式运行?您应该格式化代码,使其可读,并将其作为可运行的代码段发布。它不应该依赖于外部库,尤其是那些没有提供的库。非常感谢,先生。这一个非常有用。var af现在每一秒都会减少一次。谢谢!!!很高兴我能帮忙。请接受答案。是的!!成功了…谢谢你!如果这对您有效,请将其标记为与答案相同,这有助于其他人知道问题是否已被回答。哦,我明白了…因此setTimeout在指定时间后调用该函数,而setInterval每x秒继续执行该函数,其中x是指定时间