3

我有以下代码,它将成为 Alexa Skill 的一部分,它在本地使用 node.exe 可以正常工作,但是当我将它放入 Lambda 时,fetch 什么也不返回!和 SpeechOutput 只是有“你的标题是:”。谁能建议为什么它不起作用?

    var speechOutput="Your headlines are:";
     var urlPrefix = 'https://api.rss2json.com/v1/api.json?rss_url=http://news.com/feed/';
    const https = require('https');
    //console.log(https.get(urlPrefix));
    https.get(urlPrefix, (res) => {
       var body = '';
       res.on('data', function(data)
       {
          body += data;
        });

        res.on('end', function()
        {
          var result = JSON.parse(body);
          jItems=result.items;
          for ( var i=0 ; i < jItems.length ; i++ ) {
                     var article = jItems[i];

                         speechOutput +=", "+article.title ;
                                  }
          //console.log(speechOutput);
        });

    }).on('error', function(e)
       {
        console.log('Error: ' + e);
      });
4

1 回答 1

4

我会将此添加为评论,但我没有足够的声誉。:\

查看代码,lambda 可能在您的回调完成之前关闭。这就是为什么您确实收到了第一个日志记录,但没有收到其余的日志记录。是的,如果 require('https') 失败,你应该会得到一个错误,所以情况可能并非如此。

您可以发布其余的代码吗?在我们的 lambda 中,您在哪里调用 context.done,或者在较新版本的节点中,您是否对处理程序进行回调?

于 2016-11-25T14:39:46.827 回答