Запрос перехватчика в Alexa Node.js SDK не всегда сохраняет sessionAttributes - PullRequest
0 голосов
/ 01 июля 2019

У меня есть навык Alexa, в котором я пытаюсь получить данные из внешнего источника. Это в формате JSON, и я пытаюсь сохранить данные в атрибуте сеанса в request interceptor, но когда я пытаюсь получить доступ к этим данным в обработчиках намерений, он обычно возвращает ошибку, потому что говорит: атрибут не определен .

Я пытался отладить код, и иногда, без изменения какого-либо кода, он будет работать, но только в 5% случаев, когда он действительно работает.

const RetrieveData = {
    async process(handlerInput){

        https.get(endpoint, resp => {
            let data = "";

            resp.on('data', (chunk) => {
                data += chunk;
            });

            resp.on('end', () => {
                var sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
                sessionAttributes.seeChange = "Testing Change!";
                sessionAttributes.data = JSON.parse(data);
                handlerInput.attributesManager.setSessionAttributes(sessionAttributes);
                console.log(JSON.stringify(handlerInput.attributesManager.getSessionAttributes()));
            });

        }).on("error", (err) => {
            console.log("Error: " + err.message);
        });
    }
};

Атрибуты сеанса даже не сохранят атрибут seeChange атрибута sessionAttributes. Я ожидаю увидеть оба из них, когда я регистрирую атрибуты сессии, но обычно я не вижу ни одного из них. Спросите меня, если у вас есть вопросы Заранее спасибо!

...