私は狂ったように私を運転しているばかげた問題があります。私はDynamo dbを呼び出すAWSラムダ関数を持っています。AWSの関数からクエリ結果を返す方法DynamoDB - JS lambda
誰かが私を助けることができる
var aws = require('aws-sdk');
var ddb = new aws.DynamoDB();
function getName(userid) {
ddb.scan({
TableName: "Users",
ScanFilter: {
"userid":
{
"AttributeValueList": [
{"S": userid}
],
"ComparisonOperator": "EQ"
}
}
}, function (err, data) {
return data.Items[0].username;
});
};
exports.handler = function (event, context) {
var userid= '4vwe6jd56es59q';
var username = getName(userid);
context.succeed({success: true, username: username});
};
...私は関数にddb.Scan操作は結果を得る必要があり、その後、イベントにそれを渡したいが、私は関数の内部で結果を返すことができません私はどこに失われるのか理解する?あなたがここに関数を宣言する方法
ありがとうございました。アイデアは非同期ではないということでした...私は[link](http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.JsShell.05.html)として基本的なクエリーに従いました。 "docClient.scan(params、function(err、data){"。おそらく私は完全に間違ったパスですが、これは大きなコードの一部で、テーブルのメインクエリがあり、他のテーブルからJSONをビルドする前にいくつかの情報を取得することができます。 –
'docClient.scan'関数も非同期です。これらのAWS APIコールの非同期性をどうにかして処理する必要があります。 NodeJS。 "それは非同期ではない"というアイデアかもしれませんが、AWS NodeJS SDKが提供するオプションではなく、NodeJSコードの作成に使用するモデルではありません。 –