Проблемы с передачей данных ответа Dynamodb в функцию обратного вызова

Друзья, я бился головой о стол. Я пишу строку действий / событий Alexa + Lambda + Dynamodb. Проблема возникает в моем Lambda Node.JS. У меня есть функция getChores, в которой я пытаюсь запустить простой getItem (), чтобы вытащить только образец записи в Dynamodb, однако я могу получить доступ ТОЛЬКО к данным, возвращаемым в операторе Else, но мне нужно передать их через обратный вызов в SpeechOutput. Мы будем очень благодарны за любую помощь, которую вы можете оказать!

function getChores(callback) {
    sessionAttributes = {};

    var params = {
        TableName: 'Chores',
        Key: {
            'chore': {
                S: 'Clean up toys'
            },
        }
    };

    // Call DynamoDB to read the item from the table
    var results = ddb.getItem(params, function(err, data) {
        if (err) {
            console.info("Error", err);
        } else {
            //CAN ONLY ACCESS HERE!
            console.info("Success", data.Item);
            speechOutput = data.Item.chore.S;
            console.info(data.Item.chore.S);
            console.info(speechOutput);
        }

    });

    console.info(results);

    //Get card title from data
    const cardTitle = "Chore"

    //Get output from data
    //const speechOutput = element.chore;
    // If the user either does not reply to the welcome message or says something that is not
    // understood, they will be prompted again with this text.
    const repromptText = '';
    const shouldEndSession = false;
    callback(sessionAttributes,
        buildSpeechletResponse(cardTitle, speechOutput, repromptText, shouldEndSession));
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
91
1

Ответы 1

Похоже, что ddb.getItem - это асинхронный метод. Вам нужно вызвать метод обратного вызова callback внутри блока else.

Другие вопросы по теме