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

225
Views
Discord.js: Promise se está resolviendo como indefinido pero la consola genera el valor correcto

Estoy usando mangosta para obtener un documento existente que contiene un campo numérico llamado "huevos". Puedo obtener el documento e imprimir el número en la consola. Sin embargo, cuando se asigna a una variable y se inserta en una inserción, se muestra como indefinida.

 client.on('messageCreate', message => { if(message.content.toLowerCase() === "~inv" && message.author.tag === "<discord tag>") sendInventory(message.author.id, message.author.tag, message.channelId); ... } async function sendInventory(id, authorTag ,msgChannelID){ let eggPromise = await getData(id); let numEggs = await Promise.resolve(eggPromise).then(function(value){return value;}); let queryDesc = 'You haven't collected any eggs!'; try{ queryDesc = authorTag + ': ' + 'You have ' + console.log(numEggs) +' eggs!' } catch(err){} const embedLeaderboard = new MessageEmbed() .setColor('#624aa1') .setDescription(queryDesc); client.channels.cache.get(msgChannelID).send({embeds[embedLeaderboard]}).catch(console.error); } function getData(id){ User.findOne({discordId: id}, function(err, doc){ if(err){console.log('query error');} else{ console.log('eggs: '+doc.eggs); return doc.eggs; } }); }

Probé diferentes métodos para resolver la promesa devuelta por getData() pero parece que estoy cometiendo un simple error. Cualquier ayuda es apreciada. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

parece que olvidó devolver la promesa de la función getData, esto debería funcionar:

 function getData(id) { // User.findOne is a promise, you should return it return User.findOne({ discordId: id }).then(doc => doc.eggs); // using promises }

Promesas + Mangosta: https://mongoosejs.com/docs/promises.html

about 4 years ago · Juan Pablo Isaza Report

0

Tienes que await el .findOne

 function getData(id){ await User.findOne({discordId: id}, function(err, doc){ if(err){console.log('query error');} else{ console.log('eggs: '+doc.eggs); return doc.eggs; } }); }
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!