loopyloop
TypeScript icon, indicating that this package has built-in type declarations

4.0.2 • Public • Published

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.

License

MIT

Package Sidebar

Install

npm i loopyloop

Weekly Downloads

19

Version

4.0.2

License

MIT

Unpacked Size

33.3 kB

Total Files

15

Last publish

Collaborators

  • jacoscaz