Since Node.js V8.0+, it introduces a 'util' libaray, which has a 'promisfy' function.
It can conver a callback based function to promise based function:
const util = require('util');
const crypto = require('crypto');
// convert a callback based code to promise based
const randomBytes = util.promisify(
crypto.randomBytes
);
/* Example of callback based code
crypto.randomBytes(32, (err, num) => {
console.log(num);
});
*/
// Since randomBytes function now is promise based
randomBytes(32)
.then(num => console.log(num))
.catch(err => console.error(err));