无法从get函数检索数据

时间:2019-04-05 03:29:08

标签: node.js lambda https get alexa

我正在编写一个lambda函数来处理alexa技能请求。在“ BuildingLookUpIntent”内部,在https.get()之后,未添加任何响应。

'BuildingLookUpIntent': function(){
        var response = "";
        https.get('https://*******.execute-api.us-east-1.amazonaws.com/active/building?*******', (res) => {
            res.on('data', (d) => {
                response += d;
            });
        });  

        var speechOutput = response;
        this.response.speak(speechOutput);
        this.emit(':responseReady');
    }

Alexa返回一个空字符串。

1 个答案:

答案 0 :(得分:0)

Alexa对于您的情况一言不发。这是因为 `

 var speechOutput = response;
 this.response.speak(speechOutput);
 this.emit(':responseReady');

` 甚至在您的代码将开始处理收到的响应之前执行。 解决此问题的一种方法是将上述代码移入内部 “ res.on ”,这样当您返回响应字符串时,它将被分配给 “ speechOutput ”和Alexa可以说出来。