簡體   English   中英

Discord.js 在節點上沒有按預期工作

[英]Discord.js not working as intended on node


我試圖在發布此內容時捕獲錯誤位,並且右括號位於 catch 命令后面的句點后面,我得到紅線和預期的表達式,有幫助嗎?

client.on('message', message => { 

        let args = message.content.substring(PREFIX.length).split(' ');
    
        switch (args[0]) {
            case 'warn':
            if(!message.member.hasPermission('ADMINISTRATOR'))return message.reply('You dont have the right position to warn...')
            if (!args[1]) message.channel.send('You need to specify a person!')
            const user = message.mentions.users.first();

            if (user) {
                const member = message.guild.member(user);
                 message.channel.send(`${member} Has been warned, Contact the moderator for reasoning and apeal...`);
            }).catch((err) => {
            return message.channel.send('An error occured...')
            })
    ;

希望這能回答你的問題

try
{
  if (user) {
     const member = message.guild.member(user);
     message.channel.send(`${member} Has been warned, Contact the moderator for reasoning and apeal...`);
    }

}
catch
{ 
  return message.channel.send('An error occured...')
}

.catch()用於承諾,在您的示例中,您嘗試錯誤處理 if 語句(不返回承諾)但是message.channel.send()確實返回承諾。 嘗試這個

message.channel.send(...).catch(err => {
   if (err) console.error(err)
   // Your code
})

我認為這應該有效:

client.on('message', message => {

    let args = message.content.substring(PREFIX.length).split(' ');
    switch (args[0]) {
         case 'warn':
              if (!message.member.hasPermission('ADMINISTRATOR')) return message.reply('You dont have the right position to warn...')
              if (!args[1]) message.channel.send('You need to specify a person!')
              const user = message.mentions.users.first();

              if (user) {
                   const member = message.guild.member(user);
                   message.channel.send(`${member} Has been warned, Contact the moderator for reasoning and apeal...`);
              }
    }
}).catch((err) => {
     return message.channel.send('An error occured...')
});

暫無
暫無

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

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