Comments (2)
Hi Craig,
We chose 'handler' vs 'handlers' since the function returns a single object that maps to a single state, even though it can contain multiple listeners. You then register event listener functions inside of that object. Providing an object as a parameter to CreateStateHandler
is a convenience.
For example, the following is valid:
var inProgressHandler = Alexa.CreateStateHandler('InProgress');
inProgressHandler['LaunchRequest'] = function(){ ... }
Does that make sense?
As to your other question, in the example, newSessionHandlers
would be equivalent to
var newSessionHandlers = Alexa.CreateStateHandler(); // The 'null' state
inProgressHandler['NewSession'] = function(){ ... }
You would still need to have something like the above to catch the first-ever invocation of the skill, before any attributes (including the state string) have been set.
Of course, you don't have to use the state feature at all, especially if it is a simpler skill. It just helps to manage complexity as the number of intents go up.
from alexa-skills-kit-sdk-for-nodejs.
Thanks @deegles,
I guess when I first came to it I didn't see them as "listeners" but rather "handlers", ta.
Still not sure on the "new session being a special case" thing, perhaps if state was the second argument it would have worked out. I actually like the declarative state handley stuff and would have liked to see it used for all states but ok, ta.
from alexa-skills-kit-sdk-for-nodejs.
Related Issues (20)
- Alexa hosted skill DynamoDB permission error HOT 12
- AskSdk.DynamoDbPersistenceAdapter Error: Could not read item HOT 2
- error when speak detects an accented character
- WebSocket error from ask-sdk-local-debug with EU region HOT 3
- ExpressAdapter.verifySignature causes skills to fail validation HOT 11
- Debugging doesn't work HOT 12
- Docs don't explain how to get Client ID
- Amazon content HOT 1
- Cannot send a proper response to Alexa after MQTT Publish
- Email HOT 1
- addAudioPlayerPlayDirective not playing some URLs HOT 1
- Keep Compiled code in a dist folder
- `AlexaHouseholdListEvent.ItemsCreated` only ever provides a single ItemId HOT 2
- AskSdk.DynamoDbPersistenceAdapter error after upgrading to aws-sdk v2.1269.0
- The directive Navigation.SetDestination it's not accepted in the sdk
- Inaccurate type definitions in `ask-sdk-model`
- Aws sdk V2 in maintenance mode, upgrade for v3 HOT 3
- `withAskForPermissionsConsentCard` generating errors
- Missing support for SMAPI Metrics API v2 HOT 1
- Dynamic media URL and intercepting AudioPlayer fetch requests for HLS long streaming
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from alexa-skills-kit-sdk-for-nodejs.