【发布时间】:2019-12-20 02:00:06
【问题描述】:
我在discord.js 有一个基本的审核机器人,用node.js 编写。我需要在机器人上运行一些测试,但要这样做,我需要切换一个事件。我知道node.js 有一个e.dispatchEvent(event),但据我所知,discord.js 没有这样的功能。
我想知道这相当于什么。
【问题讨论】:
标签: node.js discord.js
我在discord.js 有一个基本的审核机器人,用node.js 编写。我需要在机器人上运行一些测试,但要这样做,我需要切换一个事件。我知道node.js 有一个e.dispatchEvent(event),但据我所知,discord.js 没有这样的功能。
我想知道这相当于什么。
【问题讨论】:
标签: node.js discord.js
Discord 客户端扩展了 Node.js EventEmitter,因此您可以使用 EventEmitter#emit() 方法调用附加到事件的侦听器函数。比如……
// Assuming 'client' is a Client, 'member' is a GuildMember
client.emit('guildMemberAdd', member);
您可以找到通常由客户端 here 发出的事件的完整列表。
【讨论】:
在 Discord.js 中,Client 类是 Node.js EventEmitter 类的扩展。因此,您可以使用EventEmitter.emit() 方法自己发出事件。
简单示例:
// Instantiate a Discord Client
const { Client } = require('discord.js');
const client = new Client();
// Attach a listener function
client.on('test', console.log);
// Emit the event
client.emit('test', 'These params', 'will be logged', 'via the listener.');
【讨论】: