Я работаю с асинхронной лямбда-функцией AWS, которая записывает данные в таблицу DynamoDB для моего умения Alexa умный дом. Проблема у меня заключается в том, что она не пишет базу данных с использованием асинхронного. Однако я конвертирую его в синхронный, он будет работать правильно. У меня нет большого опыта работы с Javascript и нулевого опыта использования обещаний. Я хотел бы знать, что не так с моим кодом / обещанием.
Спасибо за вашу помощь или предложение!
exports.handler = async function (event, context) {
// Dump the request for logging - check the CloudWatch logs
console.log("index.handler request -----");
sendToDynamo("Signal-01","powerState","ON");
}
function sendToDynamo(endpoint,state,value) {
console.log("send to dynamo start")
var ddb = new AWS.DynamoDB({
apiVersion: '2012-08-10',
region: 'us-east-1'})
var params = {
TableName: "TestDB",
Item: {
'ItemId':{
S: endpoint
} ,
'State':{
S: state
} ,
'Value':{
S: value
}
}
};
var putObjectPromise = ddb.putItem(params).promise();
putObjectPromise.then(function(data) {
console.log('*** Success ***');
})
.catch(function(err) {
console.log(err);
});
}