编写相同 alexa 函数的不同方式
Different ways of writing the same alexa function
我一直在学习 Codecademy 的 alexa 技能课程,lambda 函数的语法突然发生了变化。以下两个lambda函数有什么区别,我应该使用哪个?
我在 Codecademy 论坛上提问,没有任何回应。
// First way
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Hello, Welcome to Codecademy. What is your name?")
.reprompt("Welcome. What is your name?")
.getResponse();
},
};
...
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequestHandler,
...
)
.lambda();
// Second way
var handlers = {
'LaunchRequest': function() {
this.response
.speak("Hello, Welcome to Codecademy. What is your name?")
.listen("Welcome. What is your name?");
this.emit(':responseReady');
},
...
}
...
exports.handler = function(event, context, callback){
var alexa = Alexa.handler(event, context);
alexa.registerHandlers(handlers);
alexa.execute();
};
两种变体 运行 都正确,但我主要看到代码以第一种方式编写,课程采用第二种格式。
第一个是用alexa-sdk v2写的,第二个是用alexa-sdk v1写的。它们的工作方式相同,唯一的区别是代码的结构。 v2 在选择处理程序的方式上使用了一些不同的方法,并且有 canHandle 方法来做到这一点。
如果我是你,我会使用 v2 工作并培养我的技能,因为它更新,它将支持最新的功能,而且我认为它比 v1 结构更好,更灵活。
我一直在学习 Codecademy 的 alexa 技能课程,lambda 函数的语法突然发生了变化。以下两个lambda函数有什么区别,我应该使用哪个?
我在 Codecademy 论坛上提问,没有任何回应。
// First way
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Hello, Welcome to Codecademy. What is your name?")
.reprompt("Welcome. What is your name?")
.getResponse();
},
};
...
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequestHandler,
...
)
.lambda();
// Second way
var handlers = {
'LaunchRequest': function() {
this.response
.speak("Hello, Welcome to Codecademy. What is your name?")
.listen("Welcome. What is your name?");
this.emit(':responseReady');
},
...
}
...
exports.handler = function(event, context, callback){
var alexa = Alexa.handler(event, context);
alexa.registerHandlers(handlers);
alexa.execute();
};
两种变体 运行 都正确,但我主要看到代码以第一种方式编写,课程采用第二种格式。
第一个是用alexa-sdk v2写的,第二个是用alexa-sdk v1写的。它们的工作方式相同,唯一的区别是代码的结构。 v2 在选择处理程序的方式上使用了一些不同的方法,并且有 canHandle 方法来做到这一点。
如果我是你,我会使用 v2 工作并培养我的技能,因为它更新,它将支持最新的功能,而且我认为它比 v1 结构更好,更灵活。