【发布时间】:2016-04-23 18:26:31
【问题描述】:
我正在尝试一个非常基本的事情 - 在数据库中找到一个用户并返回一个特定的找到记录的字段。我想使用 Promise,部分用于教育目的。
var username = "user1" // assuming this exists: User({username: "user1", city: "London"})
function getUser(username) {
var promise = User.findOne({username: username}).exec();
var output = promise.then( function(user) {
return user.city;
}).catch(function(err) {
console.log(err);
});
return output;
}
使用上面给出的代码,假设有给定数据的用户,输出变量仍然是一个承诺。我怎样才能得到它的实际价值?我有一种预感,我的问题在于 return 语句不是异步的,即我在实际解决之前返回输出。返回值的正确方法是什么?
【问题讨论】: