【发布时间】:2017-12-25 16:18:38
【问题描述】:
您将如何获取机器人最后一条消息的对象?我尝试做类似的事情:
if (message.content.split(' ')[0] === 'test') {
message.channel.sendMessage('Test')
console.log(client.user.lastMessage.content)
}
如果我触发条件,控制台会给我一个错误:TypeError: Cannot read property 'content' of undefined
【问题讨论】:
-
该错误意味着
client.user.lastMessage未定义。这意味着可能没有 lastMessage(因为请记住,从技术上讲,消息仍然可以发送,因为 nodeJS 是非阻塞的),或者可能 lastMessage 属性是错误的 -
所以 node.js 在继续下一个命令之前不会等待线程完成?如果是这样,我尝试使用
setTimeout()等待 3 秒,然后再将消息记录到控制台中。有没有办法在消息继续执行之前检测消息的实际发送时间? -
回调。 sendMessage(String) 是否会重载回调参数?
-
我的意思是我建议只尝试 console.log(client.user),看看是否有 lastMessage 参数或 getter
-
啊。
lastMessage变量在对象中根本不存在。lastMessageID也是null。是否有另一种方法来设置client.user.lastMessage对象,因为它似乎没有处于read-only模式?
标签: javascript node.js discord discord.js