
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
ready-callback
Advanced tools
Launch server after all async task ready
$ npm install ready-callback
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();
});
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
});
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});
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
});
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);
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
Copyright (c) 2015 popomore. Licensed under the MIT license.
FAQs
Launch server after all async task ready
The npm package ready-callback receives a total of 16,936 weekly downloads. As such, ready-callback popularity was classified as popular.
We found that ready-callback demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
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.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.