Discord.js Команда выдачи бота: предупреждение о необработанном отказе

#javascript #node.js #discord.js

#javascript #node.js #discord.js

Вопрос:

Я пытаюсь закодировать бесплатную команду, но эта проблема появляется у меня на лице

(узел: 2052) Необработанное promiserejectionwarning: ошибка типа: аргументы[1].endswith не является функцией (узел: 2052) Необработанное promiserejectionwarning: отклонение необработанного обещания. Эта ошибка возникла либо из-за запуска внутри асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch() . Чтобы завершить процесс узла при отклонении необработанного обещания, используйте флаг CLI --unhandled-rejections=strict (см. https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode ). (идентификатор отклонения: 1) (узел: 2052) [DEP0018] Предупреждение об устаревании: Необработанные отклонения обещаний не рекомендуются. В будущем отклонения обещаний, которые не обрабатываются, завершат Node.js процесс с ненулевым кодом выхода.

 client.on('message', async message => {
  let args = message.content.substring(prefix.length).split(" ")
  if(message.content.startsWith(`${prefix}giveaway`)) {
    let time = args[1]
    if(!time) return message.channel.send('**You did not specify your time!**');
    if(
    !args[1].endsWith('d') amp;amp;
    !args[1].endsWith('h') amp;amp;
    !args[1].endsWith('m') amp;amp;
    !args[1].endsWith('s')
   )
    return message.channel.send('**You need to use d (days), h (hours), m (minutes), s (seconds)**')

let gchannel = message.mentions.channels.first();
if(!gchannel) return message.channel.send('**I can not find this channel!**')

let prize = args.slice(3).join(" ")
if(!prize) return message.channel.send('**What is the prize?**')

message.delete();
gchannel.send(":tada: **NEW GIVEAWAY** :tada:")
let gembed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setTitle('New GIVEAWAY!')
.setDescription(`react with :tada: to enter the giveaway! nHosted by **${message.author}**nTime: **${time}**`)
.setTimestamp(Date.now   ms(args[1]))
.setFooter('Will end at:')
let m = await gchannel.send(gembed)
m.react("🎉")
setTimeout(() => {
  if(m.reactions.cache.get("🎉").count <= 1) {
    return message.channel.send('**No enough people reacted for mr to draw a winner!**')
  }

let winner = m.reactions.cache.get("🎉").users.cache.filter((u) => !u.bot).random();
gchannel.send(`CONGRATULATIONS ${winner}! you just won the **${prize}!**`
);
}, ms(args[1]));
  }
   })
 

любая помощь, пожалуйста.

Ответ №1:

Это endsWith не endswith. JavaScript чувствителен к регистру.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith