Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

233
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda