EffectScheduler<Result>
An EffectScheduler is responsible for executing side effects in response to changes in state.
You probably don't need to use this directly unless you're integrating Signia with a framework of some kind.
Instead, use the react and reactor functions.
Example
const render = new EffectScheduler('render', drawToCanvas)
render.attach()
render.execute()
Type parameters
Result
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor()
Signature
new EffectScheduler<Result>(name: string, runEffect: Function, options?: EffectSchedulerOptions): EffectScheduler<Result>;
Type parameters
Result
Parameters
Name | Type |
---|---|
name | string |
runEffect | (lastReactedEpoch : number ) => Result |
options? | EffectSchedulerOptions |
Returns
EffectScheduler
<Result
>
Defined in: signia/src/EffectScheduler.ts:85
Properties
name
Readonly
string
Defined in: signia/src/EffectScheduler.ts:86
Accessors
isActivelyListening
Whether this scheduler is attached and actively listening to its parents.
Signature
isActivelyListening(): boolean;
Returns
boolean
Defined in: signia/src/EffectScheduler.ts:63
Defined in: signia/src/EffectScheduler.ts:63
scheduleCount
The number of times this effect has been scheduled.
Signature
scheduleCount(): number;
Returns
number
Defined in: signia/src/EffectScheduler.ts:76
Defined in: signia/src/EffectScheduler.ts:76
Methods
attach()
Makes this scheduler become 'actively listening' to its parents. If it has been executed before it will immediately become eligible to receive 'maybeScheduleEffect' calls. If it has not executed before it will need to be manually executed once to become eligible for scheduling, i.e. by calling EffectScheduler.execute.
Signature
attach(): void;
Returns
void
Defined in: signia/src/EffectScheduler.ts:133
detach()
Makes this scheduler stop 'actively listening' to its parents. It will no longer be eligible to receive 'maybeScheduleEffect' calls until EffectScheduler.attach is called again.
Signature
detach(): void;
Returns
void
Defined in: signia/src/EffectScheduler.ts:144
execute()
Executes the effect immediately and returns the result.
Signature
execute(): Result;
Returns
Result
The result of the effect.
Defined in: signia/src/EffectScheduler.ts:155