我有下面的函数定义。 本质上,它所做的是查询DynamoDB表并返回相应分区键的deviceID。
GetDeviceIdFromHash: function (id) {
const params = {
TableName: process.env.USER_TABLE,
Key: {
id: id
}
};
dynamoDb.get(params, function(error, result) {
// handle potential errors
if (error) {
console.log(error);
return "";
}
return result;
});
}
问题是,无论数据库中是否存在id
属性,此函数总是返回undefined
。
我不能完全确定为什么会发生这种情况。
根据我的预感,我认为这可能与dynamodb.get()
是一个异步语句有关,但是我在node.js方面的经验有限,所以我不知道如何继续。
是的,这可能是由于异步执行造成的。 所以你能试着告诉我:
GetDeviceIdFromHash: async function (id) {
const params = {
TableName: process.env.USER_TABLE,
Key: {
id: id
}
};
let result = await dynamoDb.get(params).promise();
return result;
}