Skip to content

Commit 8803dc7

Browse files
authored
Create convert-callback-based-function-to-promise-based-function.ts
1 parent c098eac commit 8803dc7

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Time: O(1)
2+
// Space: O(1)
3+
4+
type CallbackFn = (
5+
next: (data: number, error: string) => void,
6+
...args: number[]
7+
) => void
8+
type Promisified = (...args: number[]) => Promise<number>
9+
10+
// promise
11+
function promisify(fn: CallbackFn): Promisified {
12+
return async function(...args) {
13+
return new Promise((resolve, reject) => {
14+
const cb = (val, err) => {
15+
err ? reject(err) : resolve(val);
16+
};
17+
fn(cb, ...args);
18+
});
19+
};
20+
};

0 commit comments

Comments
 (0)