JSPM

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

Launch server after all async task ready

Package Exports

  • ready-callback

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 (ready-callback) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ready-callback

NPM version build status Test coverage David deps npm download

Launch server after all async task ready


Install

$ npm install ready-callback

Usage

Note: ready-callback is using class, so you should use node>=2

var koa = require('koa');
var ready = require('ready-callback')();
var app = koa();
ready.mixin(app);

// register a service
var done = app.readyCallback('service');
serviceLaunch(done);

// callback will be fired after all service launched
app.ready(function() {
  app.listen();
});

Error Handle

If task is called with error, error event will be emit, ready will never be called.

// register a service that will emit error
var done = app.readyCallback('service');
serviceLaunch(function(err) {
  done(err);
});

// listen error event
app.on('error', function(err) {
  // catch error
});

Weak Dependency

If you set a task weak dependency, task will be done without emit error.

var done = app.readyCallback('service', {isWeakDep: true});
serviceLaunch(function(err) {
  done(err);
});

// will be ready
app.ready(function() {
  app.listen();
});

app.on('error', function(err) {
  // never be called
});

You can also set for all ready-callback

var ready = require('ready-callback')({isWeakDep: true});

Ready Status

You can get status every callback end.

app.on('ready_stat', function(data) {
  console.log(data.id); // id of the ended task
  console.log(data.remain); // tasks waiting to be ended
});

Timeout

You can set timeout when a task run a long time.

var ready = require('ready-callback')({timeout: 1000});
ready.mixin(app);
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.readyCallback('service');
serviceLaunch(function() {
  // run a long time
  done();
});

You can also set timeout for every task

ready.mixin(app);
app.on('ready_timeout', function(id) {
  // this will be called after 1s that `service` task don't complete
});

var done = app.readyCallback('service1', {timeout: 1000});
serviceLaunch(done);

LISENCE

Copyright (c) 2015 popomore. Licensed under the MIT license.