¿Cómo puedo hacer setTimeout y luego bloquear? Configuré setTimeout allí, pero el programa simplemente pasa y no espera nada.
const controller = new AbortController(); const { signal } = controller.signal; return fetch(url, { signal }) .then((response) => { if (response.status === 404) { controller.abort(); setTimeout(() => controller.abort(), 5000); } return response; }) .then((response) => { console.log('in'); setTimeout(() => controller.abort(), 5000); return response.text(); }) .catch(() => { return Promise.reject(new Error('empty link')); });Traté de establecer settimeout en el bloque luego, en el bloque catch, traté de usar la función que devolvería la promesa. La lógica parece simple, pero de alguna manera no entiendo algo sobre cómo conectar, luego bloquear y establecer la funcionalidad de tiempo de espera.
La llamada setTimeout() no se bloquea. Si desea "esperar" durante x milisegundos, puede hacer lo siguiente:
const timeout = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); } const doSomething = async () => { await timeout(3000); // after 3 seconds }