Callback hell is the nesting of callbacks that is one callback inside another. Callback hell is very bad thing in nodejs, you should always avoid it.
To avoid callback hell you can:
1) Break callback into individual function
2) User promises
3) async module of node
I am focusing on only the third method:
async module in node.js
Series in node js
It runs an array of functions in series, each on running once the previous function has completed.
var async = require('async');
var getUsers = function(callback) {
callback(null, "one");
};
var getStats = function(callback) {
callback(null, "two");
};
async.series([
getUsers,
getStats
], function(err, results) {
console.log(results); //print: ["one", "two"]
});
waterfall in nodejs
It is a series of functions, in which the output of one function acts as the input for the next one,
var async = require('async');
var getUsers = function(callback) {
callback(null, "one");
};
var getStats = function(arg1, callback) {
callback(null, arg1);
};
async.waterfall([
getUsers,
getStats
], function(err, results) {
console.log(results); //print: "one"
});
parallel in nodejs
All functions are executed parallely.
var async = require('async');
var getUsers = function(callback) {
callback(null, "one");
};
var getStats = function(arg1, callback) {
callback(null, "done");
};
async.parallel([
getUsers,
getStats
], function(err, results) {
console.log(results); //print: "one"
});
0 Comment(s)