Używanie mangusty do wysyłania wyników z db i Q dla obietnic, ale ciężko jest mi położyć głowę, po prostu zdobywając listę użytkowników, którzy są dostępni. Obecnie mam trochę coś takiego:Mongoose i obietnice: jak uzyskać tablicę wyników zapytania?
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)
Jak bym go o konieczności zapytania zakończyć przed SomeOtherFunction
bez robienia ton niechlujstwa wywołania zwrotne?
Nigdy nie wiedziałem o tym '$ in', zdecydowanie spróbuję tego! –
@delboud op, jeśli jest to odpowiedź, która zakończyła się rozwiązaniem problemu, powinieneś rozważyć zaakceptowanie jej nad moją, którą właśnie zaakceptowałeś. Szczerze mówiąc, podczas gdy moja odpowiedź daje dużo więcej podstaw teoretycznych i przydatnych informacji na temat obietnic IMO - jest to praktyczna odpowiedź dla osób stojących w obliczu tego problemu w Mongoose. Możesz odpowiedzieć na moją odpowiedź, jeśli uznasz to za przydatne, ale jestem za praktycznym rozwiązaniem :) –
Właściwie zmagałam się z obietnicami, więc Twoja odpowiedziała na moje pytanie, ale dał mi wgląd w funkcję. Tak czy siak ze mną :) –