Skip to content

Commit 8e39686

Browse files
committed
⚡ use only Promise flow on callWithHooks function
1 parent 8b511ad commit 8e39686

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

src/callWithHooks.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,26 @@
55
* @param onDone
66
* @param onError
77
*/
8-
export default async function callWithHooks <T> (
8+
const callWithHooks = <T>(
99
call: () => T | Promise<T>,
1010
onDone: () => void,
1111
onError: () => void = onDone,
12-
): Promise<T> {
13-
try {
14-
const value = await call();
15-
onDone();
16-
return Promise.resolve(value);
17-
} catch (error) {
12+
): Promise<T> => {
13+
const handleError = (error: unknown) => {
1814
onError();
1915
return Promise.reject(error);
16+
};
17+
18+
try {
19+
return Promise.resolve(call())
20+
.then((value: T) => {
21+
onDone();
22+
return Promise.resolve(value);
23+
})
24+
.catch(handleError);
25+
} catch (error) {
26+
return handleError(error);
2027
}
21-
}
28+
};
29+
30+
export default callWithHooks;

0 commit comments

Comments
 (0)