Socket
Socket
Sign inDemoInstall

ready-callback

Package Overview
Dependencies
3
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ready-callback

Launch server after all async task ready


Version published
Maintainers
2
Install size
52.5 kB
Created

Changelog

Source

4.0.0 (2023-10-11)

⚠ BREAKING CHANGES

  • Drop Node.js < 16 support

closes https://github.com/node-modules/ready-callback/issues/116

part of https://github.com/eggjs/egg/issues/5257

Features

  • refactor with typescript to support esm and cjs both (#117) (7193ec1)

Readme

Source

ready-callback

NPM version CI Test coverage 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.

Keywords

FAQs

Last updated on 11 Oct 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc