wundertec-core
Version:
Librería estándar de utilidades e integraciones AWS + helpers generales
22 lines (21 loc) • 736 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withTimeout = withTimeout;
/**
* Envuelve una promesa y la rechaza si no se completa en el tiempo especificado.
* @param promise La promesa a envolver.
* @param ms Tiempo límite en milisegundos.
* @param error Opcional. Error con el que se rechaza en caso de timeout.
*/
function withTimeout(promise, ms, error) {
let timeoutId;
const timeoutPromise = new Promise((_, reject) => {
timeoutId = setTimeout(() => {
reject(error || new Error(`Operation timed out after ${ms}ms`));
}, ms);
});
return Promise.race([
promise.finally(() => clearTimeout(timeoutId)),
timeoutPromise,
]);
}