javascript - 为什么 setTimeuot console.log 每秒?
问题描述
为什么 setTimeout 函数每秒执行一次 console.log 而不是增加计数?
for (let i = 1; i <= 5; i++){
((a) => {
setTimeout(function() {
console.log( a );
}, a * 1000);
})( i );
}
解决方案
第一次通过您的循环i = 1
,这意味着这i * 1000
将导致您的第一个计时器在 1 秒后被调用。然后你第二次调用立即调用的函数,因为你的循环继续,这会导致你在你的循环中创建一个 SECOND 计时器i = 2
。因此,i * 1000
将是2000
毫秒。这同样会发生i
在等于 3 和 4 的情况下。所以你console.log
将被如下调用:
console.log
使用第一个计时器在 1 秒(1000 毫秒)调用console.log
使用第二个计时器在 2 秒(2000 毫秒)时调用console.log
使用第三个计时器在 3 秒(3000 毫秒)时调用console.log
使用第四个计时器在 4 秒(4000 毫秒)时调用
推荐阅读
- python - 当我在 python 中减去两个日期时消除“天”关键字
- code-generation - 使用 javapoet 打开参数列表的构建方法
- javascript - 自动调整动态创建的文本区域的高度
- php - 如何通过 PHP API 管理我自己的 Google 日历中的事件
- c - 如何在 C 中编写通用#define 宏并减少代码编写
- c# - 具有资源文件的动态本地化 WPF 应用程序
- amazon-web-services - 禁止(服务:Amazon S3;状态代码:403;错误代码:403 禁止(Hadoop + S3)
- javascript - Firebase 身份验证:编辑 UID
- itext - 签名字段名称限制
- javascript - jQuery,隐藏和显示内容