Verwenden von Mungo, um Ergebnisse aus der db und Q für Versprechungen abzufragen, aber finden es schwer, meinen Kopf herumzuwickeln, nur um eine Liste der verfügbaren Benutzer zu erhalten. Zur Zeit habe ich einige etwas wie folgt aus:Mungo und Versprechen: Wie bekomme ich eine Reihe von Abfrageergebnissen?
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)
Wie würde ich darüber, dass die Abfragen gehen beenden, bevor SomeOtherFunction
ohne Tonnen schlampig Rückrufe zu tun?
Ich wusste nie, $ In ', ich werde es definitiv versuchen! –
@delboud op, wenn dies die Antwort ist, die Ihr Problem gelöst hat, sollten Sie es in Betracht ziehen, es zu akzeptieren, was Sie gerade akzeptiert haben. In aller Ehrlichkeit, während meine Antwort viel mehr theoretischen Hintergrund und nützliche Informationen über Versprechen IMO gibt - das ist die praktische Antwort für Menschen, die dieses Problem in Mongoose. Sie können meine Antwort verbessern, wenn Sie es nützlich finden, aber ich bin für die praktische Lösung :) –
Ich kämpfte tatsächlich mit Versprechungen, so dass Ihre meine Frage beantwortet, aber er gab mir Einblick in eine Funktion. So oder so mit mir :) –