簡體   English   中英

(節點:4677)UnhandledPromiseRejectionWarning:未處理的承諾拒絕

[英](node:4677) UnhandledPromiseRejectionWarning: Unhandled promise rejection

我在 Glitch.com 中創建了一個不和諧的機器人,我正在創建一個警告命令,當我完成后我嘗試連接他並且它工作但是當我嘗試警告某人時它沒有警告我選擇的用戶,所以,我去控制台記錄,我資助這個錯誤:

“(節點:4677)UnhandledPromiseRejectionWarning:未處理的承諾拒絕。此錯誤源於在沒有catch塊的異步函數內部拋出,或拒絕未用.catch()處理的承諾。(拒絕ID:4)“

我看異步,對我來說很好,但是idk,你能幫我嗎?

 const Discord = require("discord.js"); const fs = require("fs"); const ms = require("ms"); let warns = JSON.parse(fs.readFileSync("./warnings.json", "utf8")); module.exports.run = async (bot, message, args) => { if(!message.member.hasPermission("MANAGE_MEMBERS")) return message.reply("I cant warn a staff member"); let wUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]) if(!wUser) return message.reply("Sir >:( listen plez mention someone no trollies >:("); if(wUser.hasPermission("MANAGE_MESSAGES")) return message.reply("hey stahp u dont have permision >:("); let reason = args.join(" ").slice(22); if(!warns[wUser.id]) warns[wUser.i ] = { warns: 0 }; warns[wUser.id].warns++; fs.writeFile("./warnings.json", JSON.stringify(warns), (err) => { if(err) console.log(err); }); let warnEmbed = new Discord.RichEmbed() .setDescription("Warns") .setAuthor(message.author.name) .setColor("#ff0000") .addField("Warned User", wUser.tag) .addField("Warned in", message.channel) .addField("Number of Warnings", warns[wUser.id].warns) .addField("Reason:", reason); let warnchannel = message.guild.channels.fin('name', "incidents"); if(!warnchannel) return message.reply("Couldn't find channel, if you dont have one create one"); warnchannel.send(warnEmbed); if(warns[wUser.id].warns == 2) { let muterole = message.guild.roles.fin('name', "muted"); if(!muterole) return message.reply("You dont have a muterole!, that breaks my heart :(!"); let mutetime = "10m"; await(wUser.addRole(muterole.id)); message.channel.send('${wUser.tag} has been temporaly muted'); setTimeout(function(){ wUser.removeRole(muterole.id) message.channel.reply('Carlos is da best') }) } if(warns[wUser.id].warns == 3) { message.guild.member(wUser).ban(reason); message.channel.send('${wUser.tag} has been banned.') } }

好吧,發生的事情是您的函數內部出現了錯誤。 承諾無法解決。 要處理的承諾沒有你要么遵循.catch(callback) ,如果您使用的是.then(callback).catch(callback)的風格,或者你周圍

try{
}
catch(err){
}

如果您使用異步和等待。 這應該可以幫助您弄清楚究竟是什么失敗了

暫無
暫無

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

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