2011-11-01 8 views
1

Je suis en train d'utiliser Mongoose et Soulignez ensemble, de faire quelque chose comme ceci:et Souligné Mongoose: Utiliser le document en tant que valeur de retour de la fonction externe

var person_ids = [1, 2, 3]; 

var persons = _(person_ids).map(function(id) { 
    Person.findById(id, function(person) { // Non-blocking 
     // How do I use 'person' as the outer function's return value? 
    }); 
}); 

Est-il possible de le faire? Je me rends compte que j'essaie de forcer un paradigme synchrone sur une bibliothèque conçue pour être utilisée de manière asynchrone.

+0

Didn Je ne sais pas que 'findById' était asynchrone. On dirait que vous êtes coincé dans un dédale de rappels tordus alors. Essayez l'approche 'Person.find'. –

Répondre

0

seule façon que vous pouvez obtenir la valeur est par le rappel:

vérifier ma réponse à: How to retrieve value of a variable in class

lieux importants dans le code sont:

Place.getActualId(function(id){ console.log(id); }); 

et

getActualId: function(callback){ 
     this.find({where: {actual: 1}}).on('success', function(placeTmp){ 
     callback(placeTmp['id']); 
}) 
+0

Ouais, c'était ma compréhension du fonctionnement de la bibliothèque Mongoose. Il est décevant de constater que ce n'est pas du tout compatible avec les fonctions fournies par Underscore, cependant. –

Questions connexes