21. HANDLING ERRORS/REJECTIONS
var promC = promA.then(promB).catch(function handleError(err){
log(err);
});
even if promA or is rejected, promC will be fulfilled
var promC = promA.then(promB).catch(function handleError(err){
log(err);
throw err; // broadcast error
});
if promA is rejected, promC will be rejected
24. PROMISIFICATION
from CPS to promise style
var request = require('request');
Promise.promisifyAll(request);
// creates promises from cps async functions
request.get('url', options, function(err, result){
...
});
request.getAsync(url, options).then(...);
// -Async suffixed functions return promises
25. NODEIFICATION
from promise style to CPS
function getInfo(token, callback){
...
return infoFrom(token).nodeify(callback);
}
getInfo('h3dsxz4i');
// -> returns a promise
getInfo('h3dsxz4i', function(err, result){...});
// -> returns a promise too actually
Both signatures accepted