私はここでこれに対する答えを見つけようと多くの時間を費やし、何も出てこないようにしました。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;
}
EDIT:徹底的なドキュメントがある程度に有用であるが、私は、この1 hereように(この上の他の記事を認識していと; mはのような実際の実装では、実質的にこの情報を使用して問題が発生しました上記1。したがって、ここで私の質問。
可能な重複http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -asynchronous-call) – Andreas
あなたが本当にリンクしている質問には、必要なすべての情報があります。 Kling氏の答えは、さまざまな状況に応じた豊富な説明とさまざまな解決策を持っています。 – Pointy
Promiseをどのように使用しようとしているかを示すことはできますか? – Victory