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

207
Visualizações
Terminar promesa dada una desconexión de socket

Tengo un sitio web Express.js que utiliza socket.io . Por cada usuario (socket) que se conecta, se llama a una función que puede tardar mucho en resolverse.

servidor.js

 const app = express(); const server = http.createServer(app); const io = new Server(server); io.on('connection', async (socket) => { console.log(`${socket.id}: socket connected`); console.log(`${socket.id}: computation started`); await longRunningTask(); console.log(`${socket.id}: computation completed`); socket.on('disconnect', () => { console.log(`${socket.id}: socket disconnected`); // TODO: Check if `longRunningTask` has resolved. If it has not, cancel it }); });

Este es el flujo actual del programa dado que un usuario se desconecta antes de que se resuelva longRunningTask :

El usuario visita el sitio web (se les asigna socket.id tCzH )

 tCzH: socket connected tCzH: computation started

El usuario se desconecta

 tCzH: socket disconnected

pasa un tiempo

 tCzH: computation completed

Mi objetivo es finalizar longRunningTask inmediatamente dado que el socket está desconectado. ¿Cuál sería el mejor enfoque?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Desafortunadamente, es imposible terminar la ejecución de una función desde fuera de su alcance en Javascript. Incluso si envuelves tu longRunningTask en una Promesa y la rechazas manualmente, no evitará que se ejecute el resto de su pila.

La implementación de longRunningTask debe modificarse para que dependa de una variable global que se encuentra en el ámbito externo, y una vez que esta variable se vuelve, por ejemplo, falsa, debe regresar o interrumpirse desde adentro.

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