events-player
A JavaScript events player, for browsers or Node.js.
events-player
?
What is It is a player of time based events, such as a movie player
It could be used in a browser, or in a Node.js application.
What is an "event"? An event is composed of 2 properties:
- a
delay
(number in milliseconds): the time that the player should wait before sending the event data - a
data
(anything you want): the data to send uppon delay expiration
events-player
?
What is not It is not a job/task scheduler such as "cron", it is not supposed to be used for scheduling a job/task "every day at 8:00 AM" for example.
Demo
Look at this example for a concrete usage
Installation
npm install events-player
or
yarn add events-player
Usage
The following example...
const player = new EventsPlayer([
{ delay: 6000, data: 42 },
{ delay: 1234, data: 'hello' }, // could be unordered
{ delay: 7000, data: { id: 1, message: 'world' } }, // could be your own data
{ delay: 7600, data: true }
], (data) => {
console.info('data:', data);
});
player.on('state', (newState, previousState) => {
console.info('state:', previousState, '-->', newState);
});
player.start();
...
player.pause(); // after 6000 ms.
...
player.resume(); // after 5 sec.
...will produce the following console output:
state: initialised --> started
data: hello
data: 42
state: started --> paused
state: paused --> resumed
data: { id: 1, message: 'world' }
data: true
state: resumed --> done
...and with a timeline representation:
actions: start() pause() resume() | | | timeline: --X---O-------------O--- (5 sec.) ---------------O-----OX---> | | | | | | || callback: | 'hello' 42 | { id: 1, message: 'world' } true | | | | state: 'started' 'paused' 'resumed' 'done'
API
Properties
Name | Type | Description |
---|---|---|
speed |
number |
the player speed |
Events
Name | Type | Default | Description |
---|---|---|---|
state |
"initialised","started","paused","resumed","done" |
"initialised" |
on player's state changed |
speed |
number |
1 |
on speed changed |
started |
- |
- |
on player started |
paused |
- |
- |
on player paused |
resumed |
- |
- |
on player resumed |
stopped |
- |
- |
on player stopped |
done |
- |
- |
on player done |
Methods
Name | Arg | Default | Description |
---|---|---|---|
start(delay) |
number |
0 |
start the player |
pause() |
- |
- |
pause the player |
resume() |
- |
- |
resume the player |
stop() |
- |
- |
stop the player |
Issues & Enhancements
For any bugs, enhancements, or just questions feel free to use the GitHub Issues
Licence
This project is licensed under the terms of the MIT license.