我具有Alexa技能,正在尝试从外部来源提取数据。它为JSON格式,我试图将数据保存到request interceptor
中的session属性中,但是当我尝试在意图处理器中访问该数据时,通常会返回错误,因为它表示属性未定义。
我已经尝试调试代码,有时,在不更改我的任何代码的情况下,它可以工作,但仅占实际工作时间的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);
});
}
};
会话属性甚至不会保存sessionAttributes的seeChange
属性。我希望在登录sessionAttributes时会同时看到这两个,但是通常我都不会看到。如有疑问,请询问我更多详细信息。预先感谢!