私はAlexaのスキルに取り組んでいます。私のラムダ関数を書くためにNode.jsを使っています。 Alexaのリクエストと応答を処理するために、Alexa SDKも使用しています。 私が直面している問題は、「this pointer」にアクセスできませんでした。コードは通りです:httpリクエストのレスポンスで 'this'にアクセスする| Node.js
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');
});
};
エラー:this.response FYI
が見つかりません:ハンドラは、[ 'ハイ'] リスナーで、アレクサから自動的に呼び出されます。私はリクエストブロックの外側でこのポインタにアクセスできます。
私は別の答えを読みましたが、誰も私の質問に答えていません。助けてください、私はどのように私は "この"応答に内部にアクセスすることができます。
の可能性のある重複した[ "この" キーワードの作業を行う方法は?](http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) –
されているのはなぜ'response'があなたのスコープ内のプレーンな変数であるときに' this.response'(プロパティアクセス)を使用していますか?しかし、ええ、それは、どのような '再予約'と 'this.emit'が想定されているかは不明です。 – Bergi
@Bergi、これ(this.emit、this.response)はalexa-sdkのものです。 –