我试图了解如何使用Node.js回调,具体说明为何以及何时在Alexa技能中使用它们。 当猜测到正确的数字时,高低的游戏样本https://github.com/alexa/skill-sample-nodejs-highlowgameuses会使用回调 如果我将回调代码移动到NumberGuessIntent函数中,该技能似乎行为完全相同,那么该回调的目的是什么?
没有回调的代码:
'NumberGuessIntent': function() {
var guessNum = parseInt(this.event.request.intent.slots.number.value);
var targetNum = this.attributes["guessNumber"];
console.log('user guessed: ' + guessNum);
if(guessNum > targetNum){
this.emit('TooHigh', guessNum);
} else if( guessNum < targetNum){
this.emit('TooLow', guessNum);
} else if (guessNum === targetNum){
this.handler.state = states.STARTMODE;
this.attributes['gamesPlayed']++;
this.emit(':ask', guessNum.toString() + 'is correct! Would you like to play a new game?',
'Say yes to start a new game, or no to end the game.');
} else {
this.emit('NotANum');
}
},
答案 0 :(得分:0)
回调用于异步操作,例如从Web API获取数据。
您可以更轻松地使用Promise,就像执行异步操作一样,就像运行同步代码一样。点击此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises