Actualmente estamos digitalizando un juego de póquer de planificación. Cuando todos los usuarios enviaron su voto, debe verificar si la mayoría de los usuarios enviaron una tarjeta de café, que tiene un valor de -1.
Los métodos recuperan los votos de todos de una base de datos Mongo así:
async checkCoffeeTimeout() { let coffeeVotes = 0; // Get the votes from the database await this.updateDBData() .then(response => { this.dbData = response[0]; let feature = this.dbData.features[this.featurePointer]; let half = 1; if(feature !== undefined) // Waiting state has no features yet { half = feature.votes.length / 2 feature.votes.forEach(vote => vote.value == -1 ? coffeeVotes++ : ''); } return coffeeVotes >= half; }); }Por alguna razón, el método no esperará la promesa this.updateDBData() , que es:
updateDBData() { return SessionObject.find({_id: this.dbData._id}) }Llamar a checkCoffeeTimeout() en un método asíncrono, precedido por un await todavía devuelve undefined.
¿Me estoy perdiendo de algo? Soy bastante nuevo en la forma de promesas await/async