nodejs设置超时



我正在使用phidgets库通过nodejs与物理设备进行交互。我已经从身体上连接了一切,我要做的就是确保我的开/关时间确切。

这将是问题,因为我什至无法使事情适当地围绕SettiMout。

本质上,我正在尝试执行以下操作:

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

这远非我想要的。

关于发生了什么的想法?

您由于 (i)

而在settimeout调用中运行该函数

将其更改为

setTimeout( function(i){
            console.log('Input: "' + i + '", Executed with timeout of ' + i*1000 + 'ms');
        }, i*1000, i );

这样,您将功能"指针"传递给使用参数i

的Settimeout设置

ps:时间值之后的所有参数 i*1000将作为参数传递给您的回调函数

最新更新