Skip to content

Repository files navigation

ready-callback

NPM versionCITest coveragenpm 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

varkoa=require('koa');varready=require('ready-callback')();varapp=koa();ready.mixin(app);// register a servicevardone=app.readyCallback('service');serviceLaunch(done);// callback will be fired after all service launchedapp.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 errorvardone=app.readyCallback('service');serviceLaunch(function(err){done(err);});// listen error eventapp.on('error',function(err){// catch error});

Weak Dependency

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

vardone=app.readyCallback('service',{isWeakDep: true});serviceLaunch(function(err){done(err);});// will be readyapp.ready(function(){app.listen();});app.on('error',function(err){// never be called});

You can also set for all ready-callback

varready=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 taskconsole.log(data.remain);// tasks waiting to be ended});

Timeout

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

varready=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});vardone=app.readyCallback('service');serviceLaunch(function(){// run a long timedone();});

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});vardone=app.readyCallback('service1',{timeout: 1000});serviceLaunch(done);

lazyStart

You can set a ready-callback object to lazyStart. It will not check ready status immediately, and should start manualy to check ready status.

varready=require('ready-callback')({lazyStart: true});yieldsleep(1);// ready obj is not readyready.start();yieldsleep(1);// ready obj is ready now

LISENCE

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

Contributors


popomore


fengmk2


semantic-release-bot


greenkeeperio-bot


killagu


liuhanqu

This project follows the git-contributor spec, auto updated at Wed Oct 11 2023 10:27:33 GMT+0800.

About

Launch server after all async task ready

Topics

Resources

Stars

26 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages