Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理无效的数字和.catch()_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 如何处理无效的数字和.catch()

Javascript 如何处理无效的数字和.catch(),javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在尝试修复此代码,但失败了 这是向成员发送消息的代码 当我选择任何号码时,它会发送一个无效的号码,我会看到这个错误 我试图修复它,但失败了,如果有任何帮助,我将不胜感激。 该代码在大约一个月前运行良好,但现在已经停止。我认为这与更新Discord.js有关 client.on('message',异步(message)=>{ 如果(!message.guild | | message.author.bot)返回; 如果(!message.content.startsWith(prefix))

我正在尝试修复此代码,但失败了 这是向成员发送消息的代码 当我选择任何号码时,它会发送一个无效的号码,我会看到这个错误

我试图修复它,但失败了,如果有任何帮助,我将不胜感激。 该代码在大约一个月前运行良好,但现在已经停止。我认为这与更新Discord.js有关

client.on('message',异步(message)=>{
如果(!message.guild | | message.author.bot)返回;
如果(!message.content.startsWith(prefix))返回;
if(message.content.startsWith(`${prefix}bc`){
如果(!message.member.hasPermission('ADMINISTRATOR'))
返回消息。回复('您没有权限');
if(message.guild.interval)
返回消息。回复(
“**另一个广播正在运行,请等待广播结束**”
);
const args=message.content.split(“”).slice(1).join(“”);
如果(!args)
返回消息。回复(
“**请在发送命令后发送消息**”
);
消息通道
.发送(
'>>***[1]所有成员\n[2]连接成员\n[3]特殊等级\n[0]取消**
)
。然后((m)=>{
消息通道
.awaitMessages((msg)=>msg.author.id==message.author.id{
最高:1,
时间:1000*60*2,
错误:['time'],
})
。然后(异步(c)=>{
var成员=null;
如果(c.first().content=='1'){
members=message.guild.members.array();
c、 first().delete();
m、 删除();
}
如果(c.first().content=='2'){
members=message.guild.members
.filter((m)=>m.presence.status!==“脱机”)
.array();
c、 first().delete();
m、 删除();
}
如果(c.first().content==“0”){
c、 first().delete();
m、 删除();
message.channel.send(
“**订单已成功取消**”
);
}
如果(c.first().content=='3'){
m、 编辑('***>>请输入排名名称**')。然后((ms)=>{
消息通道
.awaitMessages((msg)=>msg.author.id==message.author.id{
最高:1,
时间:1000*60*2,
错误:['time'],
})
。然后((c)=>{
const role=message.guild.roles.find(
(role)=>role.name==c.first().content
);
如果(!角色)
返回消息.channel
.send('**:x:我找不到邮件**'的排名)
.然后(()=>{
删除女士();
c、 first().delete();
});
const roleID=role.id;
members=message.guild.roles.get(roleID.members.array();
c、 first().delete();
m、 删除();
});
});
}
if(members==null)返回message.reply('**无效数字**');
如果(members.length==0)
返回消息。回复('**找不到号码。**');
const msg=wait message.channel.send(
`**正在将邮件发送到…${members.length}成员**`
);
var计数=0;
var ycount=0;
var xcount=0;
message.guild.interval=等待设置间隔(()=>{
如果(!成员[计数]){
clearInterval(message.guild.inter);
msg.edit(
新的不和谐
.setDescription(
`**:mailbox_with_mail:؛邮件已发送${ycount}ضواً\n:lock:؛我无法发送邮件${xcount}成员**`
)
.setTimestamp()文件
);
message.guild.interval=false;
}否则如果(!members[count].user.bot){
成员[计数]
.send(`${args}`)
.然后(()=>{
ycount++;
})
.catch((错误)=>{
返回xcount++;
});
}
计数++;
}, 500);
})
.catch(()=>m.delete());
});
}
});

如果使用Discord.js12,则必须使用缓存。所以
message.guild.roles.cache.find()


discord.jsv12及更高版本使用
管理器
,因此您必须通过
缓存
属性

//更改
const role=message.guild.roles.find(
(role)=>role.name==c.first().content
);
//到
const role=message.guild.roles.cache.find(
(role)=>role.name==c.first().content
);
//改变
members=message.guild.roles.get(roleID.members.array();
//到
members=message.guild.roles.cache.get(roleID.members.array();


错误非常简单:“message.guild.roles.find不是函数”您可以将所有内容包装在try{}catch(err){}中,并使用wait代替chain promise。它将更容易阅读和维护。谢谢你,我做到了,我没有从机器人收到它。我看到另一个错误
(节点:796)未经处理的PromisejectionWarning:TypeError:无法读取message.channel.waitMessages.then(/app/server.js:52:45)进程中未定义的属性'members'。_tickCallback(internal/process/next_tick.js:68:7)(节点:796)未经处理的PromisejectionWarning:未经处理的承诺拒绝。此错误(节点:846)未经处理PromisejectionWarning:TypeError:message.guild.members.array不是一个函数
我相信第一个错误是implyi
(node:841) UnhandledPromiseRejectionWarning: TypeError: message.guild.roles.find is not a function
at message.channel.awaitMessages.then.c (/app/server.js:77:52)
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:841) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:841) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.