Overview
Implement promisify(fn) that converts a Node-style callback function fn(args..., callback) where callback(err, result) into one that returns a Promise.
Examples
function readFile(path, cb) { cb(null, 'content'); }
const readFileAsync = promisify(readFile);
const content = await readFileAsync('test.txt'); // 'content'Solution
Reveal solution
function promisify(fn) {
return function(...args) {
return new Promise((resolve, reject) => {
fn(...args, (err, result) => {
if (err) reject(err);
else resolve(result);
});
});
};
}promisify.js
Promisify
mediumcodingJavaScriptPromises
Overview
Implement promisify(fn) that converts a Node-style callback function fn(args..., callback) where callback(err, result) into one that returns a Promise.
Examples
function readFile(path, cb) { cb(null, 'content'); }
const readFileAsync = promisify(readFile);
const content = await readFileAsync('test.txt'); // 'content'Solution
Reveal solution
function promisify(fn) {
return function(...args) {
return new Promise((resolve, reject) => {
fn(...args, (err, result) => {
if (err) reject(err);
else resolve(result);
});
});
};
}NameTopicDifficulty
103 of 103 problems