我有一个愚蠢的问题,让我发疯。我有一个AWS lambda函数,可以调用Dynamo db。如何从AWS DynamoDB中的函数返回查询结果-JS lambda
我想有ddb.Scan操作成一个函数得到的结果,然后将它传递给事件,但我不能返回结果的函数内部...
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});
};
有人可以帮助我了解我迷路的地方?
非常感谢。这个想法是让它不是异步...我跟随基本查询[链接](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代码的模型。 –