Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

537
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!