- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使 alexa 技能读取我创建的 API。 API 工作正常并返回
{
"_id": "5a4523104494060cf097c1ad",
"description": "Sprinting",
"date": "2017-12-29"
}
我有以下代码
'getNext': function() {
var url = '***API ADDRESS*** ';
var text = "The session will be";
https.get(url, function(response) {
var body = '';
response.on('data', function(x) {
body += x;
});
console.log("a" + text);
response.on('end', function() {
var json = JSON.parse(body);
text += json.description;
console.log("b" + text);
this.emit(":tell", text);
});
console.log("c " + text);
});
console.log("d" + text);
// this.emit(":tell", text);
}
哪个控制台输出
2017-12-29T09:33:47.493Z dThe session will be
2017-12-29T09:33:47.951Z aThe session will be
2017-12-29T09:33:47.952Z c The session will be
2017-12-29T09:33:48.011Z bThe session will beSprinting
然而,这将按原样为 this.emit 函数返回 null。
如果我注释掉那个并取消注释另一个,我会得到一个 <speak> The session will be</speak>
返回。
我认为这与范围有关,但无法确定为什么文本在日志 b 中正确但在 d 中不正确。如果我不能在 resonoce.on('end') 中使用 this.emit,那么我需要一种从那里获取信息以在最后使用的方法。
最佳答案
你被卡住的原因是因为异步函数。 https.get
是一个异步函数,意味着代码将继续执行,当 https.get 返回响应时,回调函数将被执行。理想情况下,无论您想对响应做什么,都应该在回调函数内。
您的文本变量的原始值为The session will be
。然后你执行 https.get
并且因为它是异步的,将移动到执行 https.get
之后的其他代码行并执行 console.log("d"+ text);
text 的值仍然不变并打印旧值。现在 https.get
返回成功响应并触发回调,现在文本值已更改,因此 console.log("b"+ text);
会看到新值
关于javascript - 使用 Lambda 从 Alexa 技能获取空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020692/
Ai时代的产品经理 随着人工智能(AI)的飞速发展,AI已经从一个前沿技术概念逐步演变为驱动各行业创新的核心力量。从智能助手到自动驾驶,从个性化推荐系统到图像识别,AI正在以不可思议的速度改变着
我在我的 Azure 帐户上创建并部署了 Node.js 机器人。我还添加了 Cortana channel ,并启用了通过连接服务管理用户身份和请求用户个人资料数据(此处我有 User.Info.E
上个学期我介绍了 Java 中的面向对象编程,下学期我将学习 Java 计算机科学 2,它基本上学习用 Java 实现的各种算法和数据结构,例如链表、二叉树等。 ..我可以通过哪些方法来巩固在面向对象
我想在网站中添加水平滑动效果。这更像是网站中的“我们是谁”、“我们的技能”、“我们的服务”、“我们的投资组合”:http://markline.org/或者类似于 http://greenacrein
我是一名 C++ 开发人员(主要是 ATL/COM 的东西),直到 2001 年我和我们中的许多人一样转向 C#。从那时起我就没有做过太多 C++ 编程。 关于如何重振我的 C++ 技能,您有什么建议
即使代码必须由 dba 授权或创建,创建表和索引等对象也是必不可少的。有经验的开发人员应该注意哪些其他通常由 dbas 执行的领域? 最佳答案 开发人员有责任尽一切努力使他的代码a)正确并且b)快速。
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
食物语宫保鸡丁 获得方式 1、玩家通过限时食魂召唤活动中抽取的方式获得宫保鸡丁。 2、玩家通过主线关卡有几率掉落不同品质的宫保鸡丁。 3、玩家可以使用100个宫保鸡丁信物兑换宫保鸡丁食魂。
白狼属性 阴阳师白狼40级后,各项属性基本上就是一个输出式神的正常数值,攻击有3000,生命防御会比辅助类的式神低一些,速度暴击都是S。 白狼技能分析 【文射】:普通攻击,白狼射出注入了妖
我需要修改我发布的 Alexa 技能。我熟悉亚马逊在发布技能后自动创建的“开发中”技能版本。我不明白的是我如何迭代我的技能,特别是当我需要同时更改交互模型和链接的 Lambda 函数时? 例如,我可以
我想知道是否可以使用 papertrail 实现以下用例 gem ? 维基百科类型的应用程序,其 wiki 页面登录的用户可以更改/编辑,其中: 版主可以撤消特定更改: 我知道 papertrail
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
我正在创建 Alexa 技能,我已经编写了几个自定义和默认 intent ,并且它们工作正常。 现在我想写一个后备 intent ,其中我想获得询问/发送到 Alexa 技能的确切语句,有没有一种方法
我正在学习 js 并创建简单的 Alexa 技能。我想更好地理解模板代码,我正在研究 https://ask-sdk-for-nodejs.readthedocs.io 上的文档但我找不到这个问题的答
我在美国和德国成功发表了我的第一项技能。在扩展到更多区域时,我遇到了无法在 DE 中重现的帐户链接问题。 在触发认证之前,是否有在多个国家/地区进行有效测试的最佳实践。到目前为止,我读到你应该更改亚马
设置完所有内容后,我在 Alexa 开发人员中测试技能时遇到此错误 请求技能的响应有问题,然后我将该 json 响应放入 lambda 测试中,得到以下结果 { "errorType": "TypeE
我希望能够通过我的 Alexa 技能运行内置或第三方技能。例如,我希望能够说 “Alexa,开始午睡” 并让 Alexa 关闭所有灯,启动特定的 Tune-In 电台,并设置 30 分钟的闹钟。但是我
我已经在我的技能中添加了 APL 支持,但现在我不明白如何检查设备是否有显示屏并因此支持 APL。在 Node.js 中看起来很简单,但 Python (3.7) 一直让我发疯。我已经尝试过提到的方法
我正在做 Hyperskill 加密 - 解密项目,描述如下,我遇到了问题。例如,如果我尝试加密字母 = a key = 1,则效果很好,输出将是:b。但如果 letter = z, key = 1,
我正在制作一个返回音频但仅持续 x 秒的函数。 如果用户说 给我放一首歌 x 秒 我正在播放歌曲,但需要在 X 秒后取消播放。因此,我的计划是在运行音频之前启动计时器 x 秒。然后,一旦计时器到时,就
我是一名优秀的程序员,十分优秀!