Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

540
Vistas
Discord.js: puede obtener un mensaje por ID, pero se rompe cuando reemplazo la ID con una variable

Estoy tratando de verificar dinámicamente las reacciones en el mensaje que se respondió, y funciona bien cuando pego la identificación del mensaje literal, pero cuando lo asigno a una variable, da un TypeError: Cannot read properties of null (reading 'usuarios') .

Utilicé msg.fetchReference() para obtener el mensaje de referencia y está asignado repliedTo . Confirmé repliedTo.id proporciona la identificación que funcionó cuando la pegué y que la variable devuelve una cadena.

 cacheChannel.messages.fetch(repliedTo.id).then(reactionMessage => { reactionMessage.reactions.resolve('📌').users.fetch().then(userList => { userList.map((user) => { if (user.id === 'testID') { console.log('already reacted'); } }); }); });

Nota al margen: Originalmente probé esto sin intentar obtener el mensaje tal como está ahora, y solo repliedTo en lugar de reactionMessage , pero tuve el mismo problema.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¡En su código está usando === que también verifica si x1 y x2 tienen los mismos tipos de datos! Como dijiste, la variable te devuelve una String , cuando user.id es un Number , por lo que recomendaría intentar cambiar === a == , ¡que solo verifica el valor! También aquí hay una explicación de cómo funciona!

about 4 years ago · Juan Pablo Isaza Denunciar

0

Entonces, ¿el problema es que cuando la identificación se mezcla con letras da un error? Puede usar isNaN function para devolverlo si la identificación no tiene ningún número o si la identificación se mezcló con letras.

 cacheChannel.messages.fetch(repliedTo.id).then(reactionMessage => { reactionMessage.reactions.resolve('📌').users.fetch().then(userList => { userList.map((user) => { if(isNaN(user.id)) { return message.reply("Your_Message") } else if (user.id === 'testID') { console.log('already reacted'); } }); }); });

O puede usar la función try {} catch {} .

 cacheChannel.messages.fetch(repliedTo.id).then(reactionMessage => { reactionMessage.reactions.resolve('📌').users.fetch().then(userList => { userList.map((user) => { try { if (user.id === 'testID') { console.log('already reacted'); } } catch { return message.reply("Your_Message") } }); }); });

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda