callback
{Function} The callback function- Returns: {Function} The intercepted function
This method is almost identical to [domain.bind(callback)
][]. However, in
addition to catching thrown errors, it will also intercept [Error
][]
objects sent as the first argument to the function.
In this way, the common if (err) return callback(err);
pattern can be replaced
with a single error handler in a single place.
const d = domain.create();
function readSomeFile(filename, cb) {
fs.readFile(filename, 'utf8', d.intercept((data) => {
// Note, the first argument is never passed to the
// callback since it is assumed to be the 'Error' argument
// and thus intercepted by the domain.
// If this throws, it will also be passed to the domain
// so the error-handling logic can be moved to the 'error'
// event on the domain instead of being repeated throughout
// the program.
return cb(null, JSON.parse(data));
}));
}
d.on('error', (er) => {
// An error occurred somewhere. If we throw it now, it will crash the program
// with the normal line number and stack message.
});