2017-02-05 3 views
0

Ich verwende derzeit die node.js (Alexa SDK) und ich habe Probleme beim Senden einer Anfrage erhalten. Hier ist, was meine Anfrage wie folgt aussieht:Wie würde ich über http in meiner Alexa-Fähigkeit mit Alexa-SDK gehen?

http.get("http://graph.facebook.com/v2.7", function(res) { 
     res.on('data', function (chunk) { 
      temp += chunk; 
     }); 

     res.on('end', function() { 
      //Figure out how to not use "this" keyword because it doesn't work.... 
      this.emit(":ask", toAsk, temp); 
     }); 
}).on('error', function (e) { 
    console.log("Got error: ", e); 
}); 

Wie Sie sehen können, in dem „Ende“ Rückruf kann ich nicht den Standard verwenden „this.emit“, weil „diese“ bezieht sich auf etwas anderes in diesem Zusammenhang. Ich bin ein wenig verwirrt darüber, wie ich das umgehen kann. Könnte jemand helfen?

Danke

Antwort

1

Ich glaube, dass diese Frage über die Verwendung dieser in einem Rückruf ist und bezogen ist nicht zu fragen.

Sie können eine vollständige Diskussion über das Thema finden Sie hier:
How to access the correct `this` context inside a callback?

Eine gute Lösung für das Problem wäre es, die Fett Pfeil Funktion Syntax für Ihren Rückruf zu verwenden ...

res.on('end',() => { 
     // with this syntax, 'this' is same as in above (res.on) context. 
     this.emit(":ask", toAsk, temp); 
    }); 
+0

Thank Sie. Ich war mir nicht bewusst, dass das eine Sache war! – Gawndy

Verwandte Themen