要解决这个问题,你可以参考以下代码示例:
const Alexa = require('ask-sdk-core');
const ErrorHandler = {
canHandle() {
return true;
},
handle(handlerInput, error) {
console.log(`Error handled: ${error.message}`);
const speechText = '请求技能的回应有问题,请重试一次。';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
},
};
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
},
handle(handlerInput) {
const speechText = '欢迎使用这个技能。';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.getResponse();
},
};
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequestHandler
)
.addErrorHandlers(ErrorHandler)
.lambda();
在上面的代码中,我们定义了一个ErrorHandler来处理错误。在handle方法中,我们使用了一个固定的回应来告诉用户请求技能的回应有问题,并且同时提供了一个重复的提示语。
在addErrorHandlers中,我们将ErrorHandler添加为错误处理程序。
这样,当技能出现错误时,Alexa会回应用户请求技能的回应有问题,并提供重试的提示。
下一篇:Alexa与ESP32芯片的互动