【问题标题】:How to fetch data which is not cached?如何获取未缓存的数据?
【发布时间】:2022-01-26 14:29:20
【问题描述】:

当我尝试与数据交互时,会引发错误。

const user = client.users.cache.get(user.id);
user.send(message);

TypeError: 无法读取未定义的属性“发送”

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    缓存实用程序说明

    缓存是Collection,是Map 的扩展,但具有array 方法等。它主要由managers 使用,用于防止无用的 API 调用,当获取数据时,它也会被缓存,您可以在不发送 API 请求的情况下检索它多少次。因此,当数据没有被缓存时,这意味着数据还没有被提取,你需要这样做。

    请求是对Discord API的调用,由Discord.js模块完成,等待Discord服务器的响应,Promise需要是awaitedawait关键字或@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: 无法读取未定义的属性 ''

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2013-05-07
      • 2015-12-11
      • 1970-01-01
      • 2018-10-24
      • 2014-10-04
      • 1970-01-01
      相关资源
      最近更新 更多