Problem
How to convert this callback code to Promise? Provide some examples.
function divisionAPI (number, divider, successCallback, errorCallback) {
if (divider == 0) {
return errorCallback( new Error("Division by zero") )
}
successCallback( number / divider )
}
function divisionAPI(number, divider) {
return new Promise(function(fulfilled, rejected) {
if (divider == 0) {
return rejected(new Error("Division by zero"))
}
fulfilled(number / divider)
})
}
// Promise can be used with together async\await in ES7 to make the program flow wait for a fullfiled result
async function foo() {
var result = await divisionAPI(1, 2); // awaits for a fulfilled result!
console.log(result);
}
// Another usage with the same code by using .then() method
divisionAPI(1, 2).then(function(result) {
console.log(result)
})
Node.js 8.0.0 includes a new util.promisify()
API that allows standard Node.js callback style APIs to be wrapped in a function that returns a Promise.
const fs = require('fs');
const util = require('util');
const readfile = util.promisify(fs.readFile);
readfile('/some/file')
.then((data) => {
/** ... **/
})
.catch((err) => {
/** ... **/
});