【问题标题】:Discord.js: Manually triggering eventsDiscord.js:手动触发事件
【发布时间】:2019-12-20 02:00:06
【问题描述】:

我在discord.js 有一个基本的审核机器人,用node.js 编写。我需要在机器人上运行一些测试,但要这样做,我需要切换一个事件。我知道node.js 有一个e.dispatchEvent(event),但据我所知,discord.js 没有这样的功能。

我想知道这相当于什么。

【问题讨论】:

    标签: node.js discord.js


    【解决方案1】:

    Discord 客户端扩展了 Node.js EventEmitter,因此您可以使用 EventEmitter#emit() 方法调用附加到事件的侦听器函数。比如……

    // Assuming 'client' is a Client, 'member' is a GuildMember
    client.emit('guildMemberAdd', member);
    

    您可以找到通常由客户端 here 发出的事件的完整列表。

    【讨论】:

    • 感谢您的帮助!
    【解决方案2】:

    在 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.');
    

    【讨论】:

    • 非常感谢!我一定是在文档中错过了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多