从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);


我哪里做错了 ?

最佳答案

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

这应该为您工作:

setTimeout(blink, delay*1000);

10-05 22:29