簡體   English   中英

setInterval 和 clearInterval 不起作用

[英]setInterval and clearInterval doesn't work

我不明白為什么 setInterval 和 clearInterval 不起作用......

//On 開始我的命令 //Off 停止我的命令

const { MESSAGES } = require('../../Data/constants')

module.exports.run = (client, message, args) => {

    switch (args[0]) {

        case 'on': {

            var interval = setInterval (function() {
                
                console.log('coucou')}, 2000);
        };
 
        case 'off': {

            clearInterval(interval);
        };

        break;
    };
};

module.exports.help = MESSAGES.COMMANDS.INFO.SPAM

我不明白為什么 setInterval 和 clearInterval 不起作用......

了解為什么您的代碼不起作用的第一步是正確掌握基本語法和格式......

您提供的代碼有幾個非常基本的問題。 我建議在創建完整的 discord 機器人之前學習更多的 javascript,否則您將在每個步驟中遇到一個又一個的問題,因為您編寫的每個命令都比打印消息更復雜。 在嘗試使用 discord 機器人等高級項目之前,擁有更高級的編程語言知識總是有益的。

您的switch語句語法非常不正確。 這是你的switch的樣子:

switch (args[0]) {

    case 'on': {
        //On Code
    };

    case 'off': {
        //Off Code
    };

    break;
};

這是它應該看起來的樣子:

switch (args[0]) {

    case 'on':
        //On Code
        break;

    case 'off':
        //Off Code
        break;

};

您需要以正確的方式編寫代碼才能使其正常工作。 更不用說,您沒有添加break; 對於您的“開”情況,這意味着您的開和關命令都試圖清除間隔,並且從一開始就沒有創建間隔。 通過一次 google 搜索,您可以找到switch語句的正確語法,將其與您自己的代碼進行比較,並自己修復您的代碼。 下次嘗試做一些研究,然后再在這里提問。 在向 StackOverflow 提問之前,您需要真正嘗試自己解決您遇到的問題,我們在這里幫助您解決您實際遇到的問題,而不是為您編寫機器人的某些部分。

這不是您的代碼中唯一的問題。 即使在更正了switch語法之后,也請查看您的代碼:

switch (args[0]) {

    case 'on':
        var interval = setInterval (function() {
            console.log('coucou');
        }, 2000);
        break;

    case 'off':
        clearInterval(interval);
        break;

};

可變interval在“開”的情況下定義。 這意味着interval變量只存在於“開”的情況下 在“關閉”的情況下,不存在稱為interval的變量,您正在嘗試清除不存在的間隔。 您需要在整個run()方法之外定義interval變量,可能在文件頂部附近,然后使用它從那里設置和清除間隔。 我不會在這個答案中發布實際的完整代碼,因為從我剛剛描述的內容中可以很容易地做到這一點,並且我想避免簡單地復制和粘貼答案而不是努力真正理解什么的情況問題是。 您將需要按照我描述的方式自己修改上述代碼塊,以使此代碼正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM