@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
23 lines • 749 B
JavaScript
/**
* @module Resilience
*/
import { TimeoutResilienceError } from "../../../resilience/resilience.errors.js";
import { abortAndFail } from "../../../resilience/utilities/abort-and-fail/_module.js";
import { TO_MILLISECONDS, } from "../../../time-span/contracts/_module.js";
/**
* @throws {TimeoutResilienceError} {@link TimeoutResilienceError}
*
* @internal
*/
export async function timeoutAndFail(promise, time, abort, signal) {
const timeoutId = setTimeout(() => {
abort(new TimeoutResilienceError("The promise exceded time"));
}, time[TO_MILLISECONDS]());
try {
return await abortAndFail(promise, signal);
}
finally {
clearTimeout(timeoutId);
}
}
//# sourceMappingURL=timeout-and-fail.js.map