Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
Siga verificando la conexión si está disponible en Node y borre setTimeout

En el nodo, sigo verificando si la conexión está disponible, si lo está, obtendrá un token y lo almacenará en la variable, pero si no, se generará un error de captura y luego se ejecutará setTimeout para intentarlo nuevamente en 2 segundos.

Pero creo que necesito una forma limpia de borrar setTimeout porque cuando lo registro, sigo obteniendo un número más alto en Symbol(asyncId) ¿Me parece que sigue agregando setTimeout cada vez más a la memoria?

 export const getToken = async () => { try { if (!GLOBAL_VARS.authToken) { await auth(`Getting token`) } // Do more stuff } catch (error: any) { tokenTimeout() } } getToken()
 export const tokenTimeout = () => { setTimeout(() => { getToken() }, 2000) }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Sí, agregará más setTimeouts a la memoria.

puedes borrarlo así:

 export const tokenTimeout = setTimeout(() => { getToken() }, 2000) export const getToken = async () => { try { if (!GLOBAL_VARS.authToken) { await auth(`Getting token`) } // Do more stuff } catch (error: any) { const timeout = tokenTimeout() } } getToken() /// use it wherever you want clearTimeout(timeout);
about 4 years ago · Juan Pablo Isaza Relatório

0

La memoria aumentará debido a lo que sea que esté haciendo con auth() y no porque esté creando tiempos de espera.

El problema que veo con su código no es realmente usar async await correctamente. Debería parecerse más

 const sleep = (ms) => new Promise((resolve) => { setTimeout(resolve, ms); }); export const getToken = async (count = 0) => { try { if (!GLOBAL_VARS.authToken) { await auth(`Getting token`); } } catch (error: any) { await sleep(2000); if (count < 10) await getToken(++count); else throw new Error('Taking too long to get auth token'); } } (async function () { await getToken(); })();
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda