Utilizzo di mangusta per interrogare i risultati di db e Q per le promesse, ma trovando difficile riuscire a capirmi solo ottenendo un elenco di utenti disponibili. Attualmente ho un po 'di qualcosa di simile:Mongoose e promesse: come ottenere una serie di risultati di query?
var checkForPerson = function(person) {
people = mongoose.model('Person', Person)
return people.findOne({"_id": person }, function(err, doc) {
if (err) console.log(err)
if (doc !== null) {
return doc
} else {
console.log('no results')
}
})
}
var promises = someArrayOfIds.map(checkForPerson);
// this is where I would like to have an array of models
var users = Q.all(promises)
//this fires off before the people.findOne query above to users is undefined
SomeOtherFunction(users)
Come potrei fare per avere le query terminano prima SomeOtherFunction
senza fare tonnellate di callback sciatta?
Non lo sapevo mai, $ in ', lo proverò sicuramente! –
@delboud op se questa è la risposta che ha risolto il problema, dovresti considerare di accettarlo sul mio che hai appena accettato. In tutta onestà, mentre la mia risposta fornisce molto più background teorico e informazioni utili sulle promesse IMO - questa è la risposta pratica per le persone che affrontano questo problema in Mongoose. Puoi invitare la mia risposta se la trovi utile, ma io sono tutto per la soluzione pratica :) –
In realtà stavo lottando con le promesse, quindi la tua ha risposto alla mia domanda, ma mi ha dato una visione di una funzionalità. Ad ogni modo con me :) –