Files
certd/packages/core/pipeline/src/utils/util.promise.ts
T

14 lines
347 B
TypeScript
Raw Normal View History

2023-07-03 11:16:46 +08:00
export function TimeoutPromise(callback: () => Promise<void>, ms = 30 * 1000) {
let timeout: any;
return Promise.race([
callback(),
new Promise((resolve, reject) => {
timeout = setTimeout(() => {
reject(new Error(`Task timeout in ${ms} ms`));
}, ms);
}),
]).finally(() => {
clearTimeout(timeout);
});
}