栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js Lambda函数从REST调用返回“响应无效”回到Alexa Service Simulator

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js Lambda函数从REST调用返回“响应无效”回到Alexa Service Simulator

不,它与speechOutput的格式无关。问题是

request
执行该方法的回调时,对它的引用
this
会丢失。为了解决这个问题,请
this
在调用之前保留对它的引用
request
(例如,分配
this
给名为的变量
self
):

'use strict';var http = require('http');var request = require('request');var Alexa = require('alexa-sdk');var APP_ID = "amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX";exports.handler = function(event, context, callback) {    var alexa = Alexa.handler(event, context);    alexa.appId = APP_ID;    alexa.registerHandlers(handlers);    alexa.execute();};var handlers = {   'LaunchRequest': function () {        this.emit(':tell', 'Hi!');   },   'ApiWelcomeIntent': function () {        self = this        request('https://some.web/api', function (error, response, body) { if (!error && response.statusCode == 200) { // from within the callback, write data to response, essentially returning it.     var speechOutput = JSON.stringify(body);     console.log(body + " :Raw output?");     console.log(speechOutput + ' :JSON stringified');     console.log(response.statusCode);     self.emit(':tell', speechOutput); // USE SELF HERE } else {     console.log(error + ' : ' + response.statusCode);     self.emit(':tell', 'There was an error'); // AND HERE AS WELL }        });    },    'AMAZON.HelpIntent': function () {} //.........And other built in intents.    }};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号