2016-12-05 2 views
1

Я использую alexa-sdk в Node.js. У меня есть умение Alexa с 4 различными состояниями, которые сохраняются в DynamoDB. В конце каждого взаимодействия мне нужно, чтобы состояние изменилось на состояние READY. В конце каждого обработчика, у меня есть SessionEndedRequest, где я поставил свое состояние следующим образом:Состояние умения Alexa не меняется с SessionEndedRequest

this.state = States.READY; 
this.emit(':saveState', true); 

Когда навык начинает с ГОТОВНОСТИ, я прыгаю от государства с помощью:

this.handler.state = States.COMM; 
this.emitWithState('NewSession'); 

I У каждого обработчика есть NewSession.

Моя проблема в том, что состояние не сбрасывается, когда пользователь перестает использовать навык. Мне нужно, чтобы он вернулся к ГОТОВЫМ.

Может ли кто-нибудь сказать мне, что мне нужно сделать для этого? Благодарю.

+0

Я думаю, что SessionEndedRequest запускается только тогда, когда пользователь ничего не говорит. В этом случае мне нужно установить состояние после ответа пользователя. Поправьте меня если я ошибаюсь. – froinds

ответ

2

код вы здесь:

this.state = States.READY; 
this.emit(':saveState', true); 

не будет устанавливать состояние Alexa приложения, потому что государство ключ существует на объекте обработчика, вы должны будете сделать

this.handler.state = States.READY; 
this.emit(':saveState', true); 

Позвольте мне если это решает вашу проблему. Благодарю.