Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

150
Views
¿Es posible delegar una sola llamada de función a un WebWorker?

Tengo un código existente (que se ejecuta en el navegador), que sigue una determinada interfaz, que no quiero romper/refactorizar.

Hay una secuencia de llamadas a funciones. Una de esas funciones, que no está bajo mi control (proviene de alguna biblioteca), realiza cálculos pesados que congelan el hilo principal, lo que hace que la interfaz de usuario sea inútil durante unos 40 segundos.

Mi idea es usar un WebWorker, por supuesto. El problema es que, según los ejemplos que veo, un WebWorker requiere su propio script aislado, que se comunica con el hilo principal a través de "mensajes". Refactorizar mi código para que se ajuste a este "esquema" sería tedioso. Daré un ejemplo simplificado de lo que quiero lograr:

 class MySimplifiedFacade{ consturctor(){ ... } someLightMethod(params){ //Do something light } //THIS IS THE FUNCTION I WOULD LIKE TO SOMEHOW ISOLATE INTO A WEBWORKER veryHeavyCalculations(params){ someExternalLibrary.heavySynchronousCalculation(params) } }

Lo único en la secuencia de acciones, que en realidad requiere un WebWorker, es esta función llamada "veryHeavyCalculations" en el ejemplo.

¿Es posible aislar de alguna manera una "pieza de código" específica dentro de un WebWorker? El problema es, según tengo entendido, que cualquier cosa que pase a un WebWorker a través de mensajes debe ser "serializable", mientras que en mi caso necesitaría pasar una referencia a algún objeto existente.

¿Algunas ideas?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!