Cuando trato de interactuar con los datos, aparece un error.
const user = client.users.cache.get(user.id); user.send(message);TypeError: no se puede leer la propiedad 'enviar' de indefinido
Explicación de la utilidad de caché
Cache es una colección , una extensión de Map pero con métodos de matriz y más. Lo utilizan principalmente los gerentes y se usa para evitar llamadas API inútiles, cuando se recuperan los datos, también se almacenarán en caché y podrá recuperarlos tantas veces como desee sin enviar una solicitud API. Entonces, cuando los datos no se almacenan en caché, significa que los datos aún no se recuperaron y deberá hacerlo.
Una solicitud es una llamada a la API de Discord que realiza el módulo Discord.js , para esperar la respuesta del servidor de Discord, la Promesa debe esperarse con await palabra clave await o el método <Promise>.then .
Obtener ejemplo
Puede obtener datos y asignar la respuesta en una variable, cuando desee acceder a ellos en otro momento, podrá recuperar datos en el caché.
/* 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 {} Después de estas explicaciones, es normal que aparezca este error ya que no es posible aplicar un método sobre algo undefined .
TypeError: no se puede leer la propiedad '' de undefined