回调在Alexa技能中是否重要?

时间:2017-07-11 20:27:24

标签: node.js callback alexa

我试图了解如何使用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');
        }
    },

1 个答案:

答案 0 :(得分:0)

回调用于异步操作,例如从Web API获取数据。

您可以更轻松地使用Promise,就像执行异步操作一样,就像运行同步代码一样。点击此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises