(err, results…) -> (err ? onError(err, results…) : onSuccess(results…))
npm install splitcb
splitcb
=======
(err, results…) -> (err ? onError(err, results…) : onSuccess(results…))
That's the basic idea. Details below.
API
---
Each argument should be either a handler function or a false-y value.
This implies they're both optional, as missing arguments default toundefined which is false-y.
Returns a nodeback function that calls the appropriate handler if one is set.
If an error is received and you didn't provide onError, the error is thrown.
The API doesn't guarantee any details about the return value of the nodeback
function, so avoid any assumptions about it.
Usage
-----
``javascript
var splitCb = require('splitcb'), nodeback;
nodeback = splitCb();
readLatestPost(nodeback); // ignore result if success, throw error otherwise
function displayPost(topic, text) { console.log(topic + ':', text); }
nodeback = splitCb(displayPost);
readLatestPost(nodeback); // displayPost or throw error
function reportFailure(err) { console.log('Error:', err); }
nodeback = splitCb(displayPost, reportFailure);
readLatestPost(nodeback); // displayPost or reportFailure
nodeback = splitCb(null, reportFailure);
readLatestPost(nodeback); // reportFailure but ignore success result
``
License
-------
ISC