setTimeout不随随机延迟工作

从node.js开始,我尝试在一段随机的时间之后调用一个函数。

为什么这不起作用:

function main() { console.log('*** START ***'); } function blink() { console.log('*** BLINK ***'); } main(); var delay = Number(Math.random(1000, 10000)); setTimeout(blink, delay); 

如果我用一个静态replace随机生成的数字,它的工作原理:

 function main() { console.log('*** START ***'); } function blink() { console.log('*** BLINK ***'); } main(); setTimeout(blink, 3000); 

我哪里做错了 ?

Number(Math.random(1000,10000))返回的值是0.37 ..或0.39 …,这对setTimeout来说太小了,因为setTimeout使用此值为毫秒,因此延迟太低或可以忽略不计。

这应该为你工作:

 setTimeout(blink, delay*1000); 

因为Math.random()不带参数。

你要这个:

 var delay = 1000 + Math.random() * 9000;