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

262
Views
Cómo usar la variable quick.db en client.users.fetch discordjs

Estoy tratando de usar un valor (ID de usuario de Discord almacenado como una cadena) almacenado a través de quick.db en mi código, pero me devuelve el error user_id: Value "[object Promise]" is not snowflake. He pasado horas tratando de resolverlo, pero simplemente no funciona. Si almaceno la ID directamente en el código, funciona bien y puedo buscar al usuario.

Este es mi archivo "ready.js". El paquete cron me permite definir a qué hora del día se ejecuta esa parte del código. No creo que sea parte del problema.

 const Discord = require("discord.js") const cron = require('cron'); const path = require('path'); const { QuickDB } = require("quick.db"); const db = new QuickDB() module.exports = client => { console.log(`${client.user.username} ist online`) client.user.setActivity('Online!', { type: 'PLAYING' }); let userid1 = db.get("id1.string"); let scheduledMessage = new cron.CronJob('00 00 08 * * *', () => { client.users.fetch(userid1).then(user => { user.send('Test').catch(err => { let channel = client.channels.cache.get('998568073034465341') channel.send(`${user} blocked the bot`) }) }) }) scheduledMessage.start() }

Aquí es donde quiero utilizar una identificación de usuario almacenada a través de quick.db en "id1.string"

 client.users.fetch(userid1).then(user => {

-> Esto no funciona

 client.users.fetch(400120540989227010).then(user => {

-> Esto está funcionando bien

Ya he probado a usar

 `${userid1}`

pero esto tampoco funciona

Estaría tan feliz si alguien pudiera ayudarme con eso.

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

db.get("id1.string") es una función asíncrona, lo que significa que, a menos que ponga una await detrás, devolverá una Promesa que aún no ha terminado. Es como querer enviar un mensaje de discordia. No puede recibir el mensaje de inmediato debido a su conexión y la conexión de la API. Toma tiempo. Entonces, para omitir esto, debe usar la palabra clave await antes del método .get (y sincronizar la función principal aquí) para que no ejecute el resto del código hasta que obtenga lo que desea de la base de datos.

 let userid1 = db.get("id1.string"); // What you have now let userid1 = await db.get("id1.string"); // What you should do instead
 module.exports = client => { // What you have now module.exports = async client => { // What you should do instead
about 4 years ago · Santiago Gelvez 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!