Periodo de tiempo máximo que se espera para que una operación finalice antes de cancelarla.
Es útil para evitar que los sistemas se bloqueen cuando una operación no responde.
// Timeout en fetch const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); try { const response = await fetch('/api/datos', { signal: controller.signal }); clearTimeout(timeoutId); return await response.json(); } catch (error) { if (error.name === 'AbortError') { console.error('Request timeout'); } throw error; } // Función con timeout genérico async function conTimeout<T>( promesa: Promise<T>, ms: number ): Promise<T> { const timeout = new Promise<never>((_, reject) => { setTimeout(() => reject(new Error('Timeout')), ms); }); return Promise.race([promesa, timeout]); } // Uso const datos = await conTimeout(fetch('/api/datos'), 5000); // setTimeout y setInterval const timeoutId = setTimeout(() => { console.log('Ejecutado después de 2 segundos'); }, 2000); clearTimeout(timeoutId); // Cancelar // Debounce (esperar a que el usuario termine de escribir) function debounce(fn, delay) { let timeoutId; return (...args) => { clearTimeout(timeoutId); timeoutId = setTimeout(() => fn(...args), delay); }; }