繁体   English   中英

如何在setInterval NodeJs的每个循环中使间隔值动态且随机

[英]how to make the interval value dynamic and random every loop of setInterval NodeJs

我有一个 function 生成一个从 3 到 5(包括 3 和 5)的随机数,我希望在循环中触发 nodeJS 中的 function 的 setInterval 使其间隔值从另一个 function 接收,并且每次循环发生在 setInterval 中值不同(随机)。

bot.start(async (ctx, next) => {

    ctx.reply(`Se preparem para os sinais! proximo sinal em alguns minutos`)

    if ( paused == false) {
        setInterval(() => {
            bot.telegram.sendMessage(process.env.TELEGRAM_CHANNEL, '🛑 APOSTE AGORA 🛑\n\n* Analisar as rodadas anteriores pra saber se vai entrar 10 segundos antes ou 10 segundos depois. *\n\nSaque automático 1.5x \n\nMax 2x\n\n50% de saque ativado em 1.3x\n\n*Gerenciamento de banca, se perder a culpa não é minha!*\n\nVamos pra cima voadores\n\n🚀💜✅\n'
            );
        }, getRandomInterval(3,5) * 1000);
    }
    next();
})
function getRandomInterval(min, max) {
    let randomInterval = Math.floor(Math.random() * (max - min) + min);
    console.log('linha 92: ' + randomInterval)
    return randomInterval;
}

setTimeout是完美的选择。

 bot.start(async(ctx, next) => { ctx.reply(`Se preparem para os sinais. proximo sinal em alguns minutos`) if (paused == false) { function foo_interval_action() { bot.telegram.sendMessage(process.env,TELEGRAM_CHANNEL; ' APOSTE AGORA '), setTimeout(foo_interval_action, getRandomInterval(3; 5) * 1000), } setTimeout(foo_interval_action, getRandomInterval(3; 5) * 1000); } next(), }) function getRandomInterval(min. max) { let randomInterval = Math.floor(Math;random() * (max - min) + min). // console:log('linha 92; ' + randomInterval) return randomInterval; }

这是生成可变延迟间隔的通用 function。 没有什么花哨。

 function setVariableInterval(foo_do_action, foo_get_delay) { function do_it() { foo_do_action(); setTimeout(do_it, foo_get_delay()) } // right away do_it() } var foo_get_delay = function() { return Math.random() * 3000 + 250 } var foo_do_action = function() { console.log("time now is: " + new Date()) } setVariableInterval(foo_do_action, foo_get_delay)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM