setTimeout不使用随机延迟

时间:2015-08-13 10:45:15

标签: node.js

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

为什么这不起作用:

function main() {
    console.log('*** START ***');
}

function blink() {
    console.log('*** BLINK ***');
}

main();
var delay = Number(Math.random(1000, 10000));
setTimeout(blink, delay);

如果我用随机数字替换随机生成的数字,它可以工作:

function main() {
    console.log('*** START ***');
}

function blink() {
    console.log('*** BLINK ***');
}

main();
setTimeout(blink, 3000);

我哪里出错了?

2 个答案:

答案 0 :(得分:2)

因为Math.random()不接受参数。

你想要这个:

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

答案 1 :(得分:1)

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

这应该适合你:

setTimeout(blink, delay*1000);