Попытка редактировать сообщение несколько раз с таймаутом / диссонансом. js - PullRequest
0 голосов
/ 21 февраля 2020

Я работаю над ботом и хочу сделать сообщение, которое редактируется несколько раз с функцией тайм-аута. То, что я пытаюсь сделать, это вещь загрузки. Вот мой код:

const discord = require('discord.js');
const bot = new Discord.Client();

bot.on("message", message => {


        if(message.content.startsWith("$load")){

          const usere = message.mentions.users.first();
          if(usere){


              try{
          message.channel.send(`Loading.`)
          .then(message => {     setTimeout(function() { message.edit(`Loading..`) }, 10000)})
          .then(message => {     setTimeout(function() {  message.edit(`Loading...`) }, 10000)})
              }catch(e){
            }
        }
    }
})

bot.login('Token');

1 Ответ

0 голосов
/ 21 февраля 2020

Вы пытаетесь получить promise сообщение функции set timeout, и оно вернет undefined, вам нужно использовать что-то вроде этого:

bot.on("message", message => {
    if (message.content.startsWith("$load")) {
        const usere = message.mentions.users.first();
        if (usere) {
            message.channel.send(`Loading.`)
                .then(msg => {
                    setTimeout(function() {
                        msg.edit(`Loading..`)
                    }, 10000);
                    setTimeout(function() {
                        msg.edit(`Loading...`)
                    }, 12000)
                })
        }
    }
})

bot.login('Token');

Или вы можете использовать inteval для редактирования каждые 10 во-вторых, просто установите Loading... как varivale и меняйте его после каждого вызова.

bot.on("message", message => {
    if (message.content.startsWith("$load")) {
        const usere = message.mentions.users.first();
        if (usere) {
            message.channel.send(`Loading.`)
                .then(msg => {
                    setInterval(function() {
                        msg.edit(`Loading..`)
                    }, 10000);
                })
        }
    }
})
...