【发布时间】:2022-01-26 14:29:20
【问题描述】:
当我尝试与数据交互时,会引发错误。
const user = client.users.cache.get(user.id);
user.send(message);
TypeError: 无法读取未定义的属性“发送”
【问题讨论】:
标签: javascript discord.js
当我尝试与数据交互时,会引发错误。
const user = client.users.cache.get(user.id);
user.send(message);
TypeError: 无法读取未定义的属性“发送”
【问题讨论】:
标签: javascript discord.js
缓存实用程序说明
缓存是Collection,是Map 的扩展,但具有array 方法等。它主要由managers 使用,用于防止无用的 API 调用,当获取数据时,它也会被缓存,您可以在不发送 API 请求的情况下检索它多少次。因此,当数据没有被缓存时,这意味着数据还没有被提取,你需要这样做。
请求是对Discord API的调用,由Discord.js模块完成,等待Discord服务器的响应,Promise需要是awaited和await关键字或@987654329 @方法。
获取示例
您可以获取数据并将响应分配到变量中,当您想再次访问它时,您将能够在缓存中检索数据。
/* Data wasn't fetched so not cached yet */
console.log(client.users.cache.get(user.id)); // undefined
/* Request data from Discord */
const fetchedData = await client.users.fetch(user.id);
console.log(fetchedData); // User {}
/* Data has been fetched so you can retrieve data from cache */
console.log(client.users.cache.get(user.id)); // User {}
经过这些解释,出现这个错误是正常的,因为无法对undefined的东西应用方法。
TypeError: 无法读取未定义的属性 ''
【讨论】: