Skip to content

Commit 054df79

Browse files
committed
fix(core/utils): unexpected result when error occurred while executing the function in doUntilEnd
1 parent 16a7373 commit 054df79

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

packages/core/src/utils/basic.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export async function callUntilEnd<T extends boolean>(
66
: (end: () => boolean) => void | boolean,
77
timeout: number,
88
immediate: boolean = false,
9+
continueEvenError: boolean = false,
910
promise: T = false as T
1011
): Promise<void> {
1112
return new Promise((resolve, reject) => {
@@ -26,11 +27,16 @@ export async function callUntilEnd<T extends boolean>(
2627
_dev.warn(
2728
"fastjs/utils/doUntilEnd",
2829
"An error occurred while executing the function",
29-
error
30+
[error.toString()]
3031
);
3132
}
32-
reject(error);
33-
end = true;
33+
if (continueEvenError) {
34+
setTimeout(callFunc, timeout);
35+
console.error(error);
36+
} else {
37+
reject(error);
38+
end = true;
39+
}
3440
}
3541
}
3642
});
@@ -39,9 +45,8 @@ export async function callUntilEnd<T extends boolean>(
3945
export function callPromiseUntilEnd(
4046
func: (end: () => boolean) => Promise<void | boolean>,
4147
timeout: number = 1000,
42-
immediate: boolean = false
48+
immediate: boolean = false,
49+
continueEvenError: boolean = false
4350
): Promise<void> {
44-
return new Promise((resolve) => {
45-
callUntilEnd(func, timeout, immediate, true).then(resolve);
46-
});
51+
return callUntilEnd(func, timeout, immediate, true);
4752
}

0 commit comments

Comments
 (0)