You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改现有代码将setInterval间隔设为30-50秒的随机值

修改方案

你只需要调整setInterval的第二个参数即可,30~50秒对应的毫秒范围是30000 ~ 50000,用Math.random()生成随机值即可。如果需要每次执行后的间隔都重新随机,建议把setInterval替换为递归调用的setTimeout避免间隔固定。

修改后的完整代码

client.on('chat', function(channel, user, message, self) {
    if (user.username == 'Cortex' && message === 'sar') {
        test(channel); // 此处补充传递channel参数,避免test内部无法访问变量报错
    }
});

function test(channel) 
{
    // 方案1:仅首次生成30~50秒的固定随机间隔,后续间隔不变
    setInterval(function() {
        var spamMessage = 'KEK ';
        var toSpam = 'MingLee';
        for (i = 0; i < 30; i++) {
            spamMessage += toSpam + ' '; 
        }
        client.say(channel, spamMessage)
    }, 30000 + Math.random() * 20000); // 生成30000~50000毫秒的随机值

    // 方案2:每次发送消息后重新随机间隔,每次间隔都不一样,需要的话替换上面的setInterval部分即可
    /*
    function sendSpam() {
        var spamMessage = 'KEK ';
        var toSpam = 'MingLee';
        for (i = 0; i < 30; i++) {
            spamMessage += toSpam + ' '; 
        }
        client.say(channel, spamMessage);
        // 执行完成后重新生成随机间隔,触发下一次执行
        setTimeout(sendSpam, 30000 + Math.random() * 20000);
    }
    // 首次触发执行
    setTimeout(sendSpam, 30000 + Math.random() * 20000);
    */
} 

补充说明

  • 原代码中test函数内部直接使用了上层事件回调的channel变量,会出现变量未定义的报错,因此补充了参数传递逻辑
  • 两种方案按需选择即可,不需要额外改动其他逻辑

内容的提问来源于stack exchange,提问作者Cortex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:45:07