Javascript 访问';这';在http请求中';s响应| Node.js
我正在使用Alexa skill并使用Node.js编写lambda函数。我还使用Alexa SDK处理Alexa的请求和响应。 我面临的问题是,我无法访问“此指针”作为响应。代码如下:Javascript 访问';这';在http请求中';s响应| Node.js,javascript,node.js,this-pointer,Javascript,Node.js,This Pointer,我正在使用Alexa skill并使用Node.js编写lambda函数。我还使用Alexa SDK处理Alexa的请求和响应。 我面临的问题是,我无法访问“此指针”作为响应。代码如下: var handler = Alexa.CreateStateHandler(); handler['hi'] = function( ) { console.log("hi intent"); request(url, function (error, response, body) {
var handler = Alexa.CreateStateHandler();
handler['hi'] = function( ) {
console.log("hi intent");
request(url, function (error, response, body) {
const message = "Hello there. Best of luck!";
const reprompt = "Hello there.";
this.response.speak(message).listen(reprompt);
this.emit(':responseReady');
});
};
错误:未找到此响应
仅供参考:handler['hi']是一个侦听器,从Alexa自动调用。我可以在请求块外访问此指针
我读了不同的答案,但没有一个能回答我的问题。请帮助,我如何访问“this”内部响应。您的问题实际上是一个javascript问题。js“this”与您可能习惯的c/c++等语言不同,您在这里遇到的问题——从回调中访问“this”——是一个常见的js陷阱,因此它已经得到了很好的回答,例如
你的问题实际上是一个javascript问题。js“this”与您可能习惯的c/c++等语言不同,您在这里遇到的问题——从回调中访问“this”——是一个常见的js陷阱,因此它已经得到了很好的回答,例如
当
response
在您的范围内是一个普通变量时,为什么要使用this.response
(属性访问)的可能重复?但是是的,现在还不清楚reprompt
和this.emit
应该是什么。@Bergi,this(this.emit,this.response)是alexa sdk的东西。所以你不能只使用handler.emit
和handler.response
?假设hi
方法中的this===handler
。尝试将console.log(“hi intent”)
替换为console.log(this)
,如果this
记录的是带有response
和emit
的,则可以绑定您的回调,然后可以执行请求(url,callbackinded)当response
在您的作用域中是一个普通变量时,为什么要使用this.response
(属性访问)的可能重复?但是是的,现在还不清楚reprompt
和this.emit
应该是什么。@Bergi,this(this.emit,this.response)是alexa sdk的东西。所以你不能只使用handler.emit
和handler.response
?假设hi
方法中的this===handler
。尝试将console.log(“hi intent”)
替换为console.log(this)
,如果this
记录的是带有response
和emit
的,则可以绑定您的回调,然后可以执行请求(url,callbackinded)