我花了这么多时间试图找到这里这个问题的答案,并拿出什么利用数据。希望有人能开导我..的Javascript:从一个异步回调函数(MongoClient)
我有一个代码,它正在对数据库进行异步调用,并在回调函数中返回数据(在我的例子中,我使用的是MongoClient,它返回一个Promise)。不过,我不知道如何使用所产生的数据实际设置功能级别的变量 - 每当我试图这样做所产生的价值,我登录是未定义或挂起的承诺目标。
有很多关于这个问题的帖子,但我不能找到工作,当我尝试应用它们的任何方法。任何和所有的帮助感激地收到!
function lookupOneDbEntry(key, value) {
var responseData = "initial data"
// search for the entry in the database
db.collection("my_collection").findOne({key: value}, function(err, result) {
if (err) {
//if database throws an error
responseData = "db error";
}
else {
// if the entry is found, return the data
responseData = result;
}
});
return responseData;
}
编辑:我知道其他职位上这个(像这样的here和,而详尽的文件是在一定程度上是有用的,我,M在现实生活中实现,如实际使用此信息有问题上面的一个。因此,我的问题在这里。
可能重复[如何从异步调用返回响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -asynchronous-call) – Andreas
你连接的这个问题确实有你需要的所有信息。克林先生的回答有很多解释和针对不同情况的各种解决方案。 – Pointy
你能告诉你如何使用Promise吗? – Victory