JSPM

callback-count

0.2.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3786
  • Score
    100M100P100Q121841F
  • License MIT

Count your callbacks before continuing. A tiny control flow helper that supports dynamic counting.

Package Exports

  • callback-count

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (callback-count) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

callback-count Build Status

Count callbacks before continuing, tiny control flow helper, allows dynamic counting.

Flow control

var callbackCount = require('callback-count');
var counter = callbackCount(done);

setTimeout(counter.inc().next, 100);
setTimeout(counter.inc().next, 100);

function done (err) {
  console.log('finished.');
}

.inc() allows you to dynamically update the number of callbacks you are expecting.

var callbackCount = require('callback-count');
var counter = callbackCount(done);

counter.inc().inc().inc();
counter.next().next().next();

function done (err) {
  console.log('finished.');
}

The constructor can take an initial value for the count expected

var callbackCount = require('callback-count');
var counter = callbackCount(3, done);

counter.next().next().next();

function done (err) {
  console.log('finished.');
}

.next() decrements the count and callsback when the count has reached 0

var counter = createCounter(3, done);

counter.next().next().next();

function done (err) {
  console.log(counter.count); // 0
  console.log('finished.');
}

if .next() receives an error it will callback immediately

var counter = createCounter(3, done);

counter.next(new Error('boom'));

function done (err) {
  console.log(err.message); // boom
}

License: MIT