All Projects → node-modules → ready-callback

node-modules / ready-callback

Licence: other
Launch server after all async task ready

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to ready-callback

docker-pega-web-ready
Docker project for generating a tomcat docker image for Pega
Stars: ✭ 46 (+76.92%)
Mutual labels:  ready
poet ready system
这是一个说阅读网站,jdk 1.8,使用的框架 Spring boot 和 Mybatis ,前端偷懒使用的事layuiAdmin的后台模板框架,主要是一个爬小说,看小说的。 主要有OSS 上传,JSOUP 爬取小说信息, 腾讯云短信服务,简单的权限管理,Echarts 图表,等基础的功能。 写着作为今年毕业设计的。
Stars: ✭ 19 (-26.92%)
Mutual labels:  ready
ready
Detect element availability on the initial page load and those dynamically appended to the DOM
Stars: ✭ 77 (+196.15%)
Mutual labels:  ready
Fluid
Modern, Stylish, Easier and Powerful Css framework for faster and hassle free web development
Stars: ✭ 24 (-7.69%)
Mutual labels:  ready
egjs-imready
I'm Ready to check if the images or videos are loaded!
Stars: ✭ 41 (+57.69%)
Mutual labels:  ready
setonas
Setonas Programming Language
Stars: ✭ 19 (-26.92%)
Mutual labels:  ready

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);

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.

var ready = require('ready-callback')({ lazyStart: true });
yield sleep(1);
// ready obj is not ready
ready.start();
yield sleep(1);
// ready obj is ready now

LISENCE

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].