Javascript 如何将参数分配给事件?
所以我试图创建一个自动的Javascript 如何将参数分配给事件?,javascript,discord.js,Javascript,Discord.js,所以我试图创建一个自动的角色分配,如果用户在我创建的消息中添加了一个特定的反应。当我开发这个时,我遇到了一些我不明白的事情: 表示,messageReactionAdd事件提供两个参数: messageReaction 用户 但是我的事件处理程序仅将客户机和Discord参数绑定到事件。让我向您展示我的代码: 事件处理程序: module.exports=(客户端,不一致)=>{ const load_dir=(dirs)=>{ const event_flies=fs.readdirSyn
角色
分配,如果用户
在我创建的消息中添加了一个特定的反应
。当我开发这个时,我遇到了一些我不明白的事情:
表示,messageReactionAdd事件
提供两个参数
:
messageReaction
用户
事件处理程序
仅将客户机
和Discord
参数绑定到事件。让我向您展示我的代码:
事件处理程序:
module.exports=(客户端,不一致)=>{
const load_dir=(dirs)=>{
const event_flies=fs.readdirSync(`./events/${dirs}`).filter(file=>file.endsWith('.js'));
for(事件的常量文件){
const event=require(`../events/${dirs}/${file}`);
const event_name=file.split('.')[0];
on(event_name,event.bind(null,client,Discord));
}
};
['client','guild'].forEach(e=>load_dir(e));
};
我用创建了处理程序
,但我仍然不明白为什么第一个参数
为空
MessageReactionAdd事件:
module.exports=(客户端、不一致、反应)=>{
console.log('Test');
}
我在console.log()
上调试以检查参数是否正确
现在有两件事我不明白:
- 由于我没有通过
在任何地方分配它,.bind()
参数从何而来reaction
- 如果null的
导致了这种情况,那么为什么参数的顺序不正确?我绑定绑定
但是在我的null,client,Discord
中,我必须指定如下参数:messageReactionAdd
,尽管我认为reaction是第一个client,Discord,reaction
参数
参数
的顺序是颠倒的,如果将null赋值为事件的参数
就像占位符一样提供特定于事件的参数
如果您需要更多的代码,请让我知道,我会尽快添加。您误解了实际操作
bind()
方法创建一个新函数,在调用该函数时,将其this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列
正如这里所提到的,bind()
在调用函数时会将参数前置到函数中,这就是顺序的结束方式。下面是一个例子:
功能测试(参数1、参数2、参数3){
console.log(param1);
console.log(param2);
console.log(param3);
};
//调用'boundFunction'时,'param1'和'param2'将
//分别分配给'1'和'2'
const boundFunction=test.bind(null,1,2);
//在这个场景中,“3”实际上是“param3”`
边界函数(3)代码>您误解了实际操作
bind()
方法创建一个新函数,在调用该函数时,将其this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列
正如这里所提到的,bind()
在调用函数时会将参数前置到函数中,这就是顺序的结束方式。下面是一个例子:
功能测试(参数1、参数2、参数3){
console.log(param1);
console.log(param2);
console.log(param3);
};
//调用'boundFunction'时,'param1'和'param2'将
//分别分配给'1'和'2'
const boundFunction=test.bind(null,1,2);
//在这个场景中,“3”实际上是“param3”`
边界函数(3)非常感谢:)很高兴我能帮上忙!非常感谢:)很高兴我能帮忙!