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

240
Visualizações
El tiempo de espera de mutex en javscript no muestra en qué línea del código se produce el error

Uso Node v16.14.2 y ejecuto este programa en el símbolo del sistema.

Tengo un pequeño problema con el uso de Mutex en javascript. El Mutex en sí funciona, pero a veces lleva mucho tiempo adquirir el Mutex y me encuentro con el error:

 C:\myproject\node_modules\async-mutex\lib\errors.js:4 exports.E_TIMEOUT = new Error('timeout while waiting for mutex to become available'); ^ Error: timeout while waiting for mutex to become available at Object.<anonymous> (C:\myproject\node_modules\async-mutex\lib\errors.js:4:21) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (C:\myproject\node_modules\async-mutex\lib\Semaphore.js:4:16) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)

Tengo 2 cosas que me pregunto:

  1. El mensaje de error no muestra en qué línea ocurre este error en mi código, lo cual es un problema porque tengo quizás 20 mutex diferentes y no sé cuál tiene el problema. ¿Cómo saber en qué línea de mi código se produce este error? (Todos los demás tipos de errores que no están relacionados con el mutex muestran qué línea se menciona el error)

  2. ¿Hay algún problema para permitir que el código adquiera el mutex de todos modos, incluso si no está disponible (lo que probablemente no sea una buena idea, pero aún así?)

Código de prueba para reproducir el error. He anidado el mismo mutex solo para ilustrar el error.

 var Mutex = require('async-mutex').Mutex; var withTimeout = require('async-mutex').withTimeout; const mutexWithTimeout = withTimeout(new Mutex(), 5000); //5 second timeout _testfunction(); async function _testfunction() { console.log("starting..."); await mutexWithTimeout.runExclusive(async () => { console.log("I am inside the mutex now..."); await mutexWithTimeout.runExclusive(async () => { console.log("Timeout will happen here because I am nested just to reproduce the error"); }); }); }

about 4 years ago · Juan Pablo Isaza
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