2016-04-23 19 views
0

Ich versuche eine sehr einfache Sache - einen Benutzer in der Datenbank finden und eines der Felder für einen bestimmten gefundenen Datensatz zurückgeben. Ich möchte Versprechungen nutzen, zum Teil für Bildungszwecke.Rückgabewert eines Versprechens in Mungo

Mit dem oben angegebenen Code, vorausgesetzt, es gibt einen Benutzer mit bestimmten Daten, ist die Ausgabevariable immer noch ein Versprechen. Wie kann ich den tatsächlichen Wert davon erhalten? Ich habe eine Ahnung, dass mein Problem darin besteht, dass die Rückgabeanweisung nicht asynchron ist, d. H. Ich gebe die Ausgabe zurück, bevor sie tatsächlich aufgelöst wurde. Was wäre der korrekte Rückgabewert?

Antwort

2

Sie das Versprechen, zurückzukehren, um den Wert zu erhalten, wenn das Versprechen Sie then behoben ist auf dem zurück Versprechen rufen sollte:

function getUser(username) { 
    return User 
     .findOne({username: username}) 
     .then(function(user) { 
      return user.city; 
     }) 
     .catch(function(err) { 
      console.log(err); 
     }); 
} 

// How to use getUser 
getUser('John') 
    .then(function(city) { 
     console.log(city); 
    }); 
Verwandte Themen