Skip to content

Commit 579960f

Browse files
committed
Add promisify adapter example
1 parent 9d3b507 commit 579960f

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

JavaScript/8-promisify.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
const promisify = (fn) => (...args) => {
4+
const promise = new Promise((resolve, reject) => {
5+
const callback = (err, data) => {
6+
if (err) reject(err);
7+
else resolve(data);
8+
};
9+
fn(...args, callback);
10+
});
11+
return promise;
12+
};
13+
14+
// Usage
15+
16+
const fs = require('node:fs');
17+
const read = promisify(fs.readFile);
18+
19+
const main = async () => {
20+
const fileName = '8-promisify.js';
21+
const data = await read(fileName, 'utf8');
22+
console.log(`File "${fileName}" size: ${data.length}`);
23+
try {
24+
const data = await read('unknown.file', 'utf8');
25+
console.log(`File size: ${data.length}`);
26+
} catch (error) {
27+
console.error(error.message);
28+
}
29+
};
30+
31+
main();

0 commit comments

Comments
 (0)