Discord JS如何停止client的messageReactionAdd事件监听
实现方案
你可以将事件回调定义为具名函数,触发终止条件时直接调用client.off()移除对应的messageReactionAdd监听器即可,该方案完全符合「先执行前置代码、触发条件后事件永久停止执行」的要求,实现代码如下:
// 单独定义具名的事件处理函数 const reactionAddHandler = (reaction, user) => { // 前置代码会先正常执行,不会被提前拦截 // Previous code if (user.id === "1234567891234567") { // 移除当前的messageReactionAdd监听器,之后该事件不会再触发执行 client.off('messageReactionAdd', reactionAddHandler) return } // 条件未触发时才会执行的后续正常业务逻辑 } // 绑定事件监听 client.on('messageReactionAdd', reactionAddHandler)
备注:该方案兼容所有Discord JS版本,且只会移除当前定义的
reactionAddHandler监听器,不会影响其他同事件的独立监听器运行。
内容的提问来源于stack exchange,提问作者Yulius
相关产品推荐
相关产品推荐

