loopyloop
v4.0.2
Published
A simple class to instantiate infinite loops of async functions
Downloads
64
Maintainers
Readme
LoopyLoop
A simple class to instantiate infinite loops of async functions.
Usage
const { LoopyLoop } = require('loopyloop');
const loop = new LoopyLoop(async () => {
// something async here
})
.on('started', () => {})
.on('stopped', () => {})
.on('error', (err) => {})
.start();
API
Constructor
const loop = new LoopyLoop(task, opts);
| Argument | Description |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| task
| An async
or otherwise Promise
-returning function
to be executed continuously. |
| [opts]
| An optional object
of loop options. |
| [opts.maxChained]
| The optional maximum number
of chained executions within the same tick of the JavaScript event loop. Defaults to 10
. |
Events
The LoopyLoop
class extends EventEmitter
and its instances emit the following events:
| Event | Description |
| ---------- |-------------------------------------------------------------------------------------------------------------------------------|
| started
| Emitted after the loop has started running but before the task runs for the first time. |
| stopped
| Emitted after the loop has stopped running. |
| error
| Emitted when the Promise
returned by task
rejects. The rejection's error is provided as the first argument to this event. |
In addition to emitting the error
event, a LoopyLoop
instance will stop running when its task
rejects.
Methods
| Method | Description |
|------------------|-------------------|
| loop.start()
| Starts the loop. |
| loop.stop()
| Stops the loop. |
Runtimes
LoopyLoop should be compatible with all modern JS runtimes. Loaders, bundlers,
build systems and import maps may be used to resolve the events
module,
which is native to the Node.js runtime, to any other package or module offering
an alternative implementation of EventEmitter
, as long as basic API
compatibility is maintained. Good examples of alternative implementations are
eventmitter3
and events
.