2017-08-22 11 views
0

私はユーザーに質問し、AMAZON.yesIntentnoIntentを使用して応答を取得しようとしています。私が応答を得る場合、私は何かをユーザに返すべき他の関数を呼び出しています。しかし、放射は呼び出されていません。以下のコード:Alexa:関数連鎖では機能しません。

'use strict'; 

var Alexa = require("alexa-sdk"); 
var https = require('https'); 
var alexa; 

exports.handler = function(event, context, callback) { 
    alexa = Alexa.handler(event, context); 
    alexa.registerHandlers(handlers); 
    alexa.execute(); 
}; 

var handlers = { 
    'LaunchRequest': function() { 
    alexa.emit(':ask', 'my text'); 
    }, 
    'oneShotIntent': function() { 
    var self = this; 
    // removed the code for simplicity 
    self.attributes['yes_no'] = true; 
    alexa.emit(':ask', 'sample yes no question'); 
    }) 
    }, 
    'AMAZON.YesIntent': function() { 
    if (this.attributes['yes_no']) { 
     delete this.attributes['yes_no']; 
     alexa.emit('oneShotSecond'); 
    } 
    }, 

    'oneShotSecond': function() { 
    delete this.attributes['yes_no']; // already deleted 
    // removed code for simplicity 
     var self = this; 
    // removed code for simplicity 
     console.log(info); 
     if (info) { 
      console.log('here in if condition'); 
      self.emit(':tell', 'sample text'); 
     } else { 
      self.emit(':tell', 'sorry failed'); 
     } 
     }); 
    } 
}; 

最初の発光が機能しています。他の機能のconsole.logが起きています。しかし、放射は失敗している。

雲のログもありません。それはちょうどconsole.logデータポイントを印刷した後に終了します。

助けが必要ですか?

答えて

0

私は

alexa.emit('oneShotSecond'); 

を理解していれば、私は

oneShotSecond(this); 

そして

'oneShotSecond': function(self) { // use self.emit} 
以下のようにそれをやっているだろうがわかりません
関連する問題