dictionary:more:dolater
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dictionary:more:dolater [2018/01/12 18:59] – [Notes:] James Sentman | dictionary:more:dolater [2023/02/13 14:52] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====Do Later==== | ====Do Later==== | ||
Execute a handler in the same script in some number of milliseconds. It’s often necessary to add in a “delay” to some scripts when talking to other devices or programs, unfortunately a delay causes the entire program to block until the delay is complete. This is not acceptable for an application that must remain responsive to other input while that script is running. **do later** lets you schedule handlers in a script to happen one after another as if the script was written entirely inline but with delay statements while avoiding the problems of blocking the entire app for extended periods of time. | Execute a handler in the same script in some number of milliseconds. It’s often necessary to add in a “delay” to some scripts when talking to other devices or programs, unfortunately a delay causes the entire program to block until the delay is complete. This is not acceptable for an application that must remain responsive to other input while that script is running. **do later** lets you schedule handlers in a script to happen one after another as if the script was written entirely inline but with delay statements while avoiding the problems of blocking the entire app for extended periods of time. | ||
+ | |||
+ | Do Later is similar to just using the [[dictionary: | ||
+ | |||
+ | There is no interface currently to the outstanding do later events you’ve created in a script. In order to stop a runaway do later cascade is to edit the script and just put a “return” at the front of the handler you’re calling back into so that it stops before the next do later is created. | ||
+ | |||
+ | Don’t use do later for things that you need to adjust the timing of, or things where you might create more and more of them like a motion controlled light. Use the [[tutorials: | ||
+ | |||
+ | If you need a regular callback to the same handler or need to create such an event in another script use the [[dictionary: | ||
+ | |||
+ | A Global Script named “[[xtension_manual: | ||
===Usage: | ===Usage: | ||
Line 7: | Line 17: | ||
**in** [integer] the number of milliseconds to call the handler specified in the default parameter. A second is 1000 milliseconds so if you wanted to run the named handler in 4 seconds you would specify 4000.\\ | **in** [integer] the number of milliseconds to call the handler specified in the default parameter. A second is 1000 milliseconds so if you wanted to run the named handler in 4 seconds you would specify 4000.\\ | ||
\\ | \\ | ||
- | **with data** [any or list of any: optional] if you have information you wish to pass on to the handler you can specify it here. Passing {“one”, “two”} would pass those into a handler written as: on myHandler( paramOne, paramTwo) where paramOne would be “one” and so forth. | + | **with data** [any or list of any: optional] if you have information you wish to pass on to the handler you can specify it here. Passing {“one”, “two”} would pass those into a handler written as: on myHandler( paramOne, paramTwo) where paramOne would be “one” and so forth. See the [[tutorials: |
===Examples: | ===Examples: | ||
Line 23: | Line 33: | ||
end partThree | end partThree | ||
</ | </ | ||
+ | |||
+ | ===See Also:=== | ||
+ | * [[dictionary: | ||
+ | * [[dictionary: | ||
+ | * [[xtension_manual: | ||
===Notes: | ===Notes: |
dictionary/more/dolater.1515783565.txt.gz · Last modified: 2023/02/13 14:51 (external edit)