【发布时间】:2020-01-24 02:26:16
【问题描述】:
我是异步函数和承诺的新手。我编写了一个 Lambda 函数来查询 DynamoDB 表并返回结果。代码在回调成功块内执行,我可以从 console.log(res) 行看到日志中的响应。但是 Lambda 响应始终显示为 null,即根本不返回下面的响应对象。我能够使用同步 Lambda 函数来完成这项工作,该函数使用回调返回数据。您能否建议我可能做错了什么。
const doc = require('dynamodb-doc');
var dynamodbclient;
const tablename = process.env.TABLE_NAME;
exports.handler = async(event) => {
if (!dynamodbclient) {
dynamodbclient = new doc.DynamoDB();
}
let id = event.params.id;
let queryparams = {
TableName: 'table-name',
Key: { id: id }
};[![enter image description here][1]][1]
var getItemsCallback = (err, res) => {
console.log('inside');
if (err) {
}
else {
console.log('success');
console.log(res);
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
}
};
var item = await dynamodbclient.getItem(queryparams, getItemsCallback).promise();
};
【问题讨论】:
-
你想
await getItem(queryParams).promise().then(getItemsCallback)
标签: aws-lambda dynamodb-queries