Как бы я вставил сообщение.удалить команду в этом коде?

#javascript #node.js #discord #discord.js

Вопрос:

Поэтому я создаю команду очистки для своего бота, и я хочу, чтобы бот удалил вставку, которую он отправляет через 2 секунды. В настоящее время я использую discord.js, и я также могу использовать ms-плагин node. Поэтому всякий раз, когда я пытаюсь что-то вроде

     try {
      await message.channel.bulkDelete(fetched)
        .then(messages =>message.channel.send(purgeEmbed))
    }catch (err) {
      console.log(err);
      message.channel.send(issuePurgeEmbed);
    }
     var message = await message.channel.send(purgeEmbed);
     message.delete({timeout: 2000});
  }
}
 

Это вроде как работает. В результате бот отправляет 2 сообщения и удаляет одно через 2 секунды. И тогда я попытался

     try {
      await message.channel.bulkDelete(fetched)
        .then(messages =>message.channel.send(purgeEmbed))
        .then(message.delete({timeout: 2000})
    }catch (err) {
      console.log(err);
      message.channel.send(issuePurgeEmbed);
    }
  }
}
 

и это тоже не сработало. Я относительно новичок в кодировании, так что, возможно, это просто что-то, чему я еще не научился. Если есть более простой способ сделать это с помощью ms-плагина node, это тоже сработает. Любая помощь будет признательна.

Комментарии:

1. Вам следует удалить часть try catch и wait и использовать promise.then(...).catch(...) синтаксис.

2. Нет необходимости использовать .then() , если вы не используете возвращаемые значения из обещаний. Попробуйте использовать простую последовательность

Ответ №1:

Я исправил код с более простой последовательностью благодаря Elitezen и Shivam. Я отредактировал код, так что теперь в нем говорится:

 await message.channel.bulkDelete(fetched);
    var message = await message.channel.send(purgeEmbed).catch(err => console.log(err))
    message.delete({timeout: 2000 }).catch(err => console.log(err));
 

Спасибо за помощь вам двоим 🙂

Ответ №2:

Один из способов сделать это -:

 await message.channel.bulkDelete(fetched).then(setTimeout(() => {
    message.delete().catch(err => console.log(err));
},2000));