我正在使用phidgets库通过nodejs与物理设备进行交互。我已将它全部连接在一起,我想要做的就是确保我的开/关时间是准确的。
这将是问题所在,因为我甚至无法正确地将有关setTimout的内容输入console.log。
基本上,我正在尝试执行以下操作:
for ( var i = 0; i < 4; i++ ) {
setTimeout( function(i){
console.log('Input: "' + i + '", Executed with timeout of ' + i*1000 + 'ms');
}(i), i*1000 );
};
但我的控制台只是吐出以下内容,没有超时。它是即时的。
Input: "0", Executed with timeout of 0ms
Input: "1", Executed with timeout of 1000ms
Input: "2", Executed with timeout of 2000ms
Input: "3", Executed with timeout of 3000ms
这远非我想要的。
关于发生了什么的任何想法?
答案 0 :(得分:4)
由于(i)
将其更改为
setTimeout( function(i){
console.log('Input: "' + i + '", Executed with timeout of ' + i*1000 + 'ms');
}, i*1000, i );
这样你就可以使用参数i
PS:时间值i*1000
之后的所有参数都将作为参数传递给回调函数