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

322
Views
JavaScript Web Workers - Importación de scripts entre navegadores con módulo

Tengo un módulo de JavaScript así:

 function difference(a, b){ return a - b; } export {difference};

Esto funciona bien cuando lo importo a mi script principal.

 import * as MathUtils from './math-utils.js';

Sin embargo, también quiero importarlo a Web Worker. La única forma de hacer esto entre navegadores parece ser la siguiente:

 self.importScripts('/scripts/math-utils.js');

Obviamente recibo un error al hacer esto debido a la declaración de exportación al final del módulo. ¿Hay alguna forma de importar el mismo script a un Web Worker que sea multinavegador? ¿O al menos para pasar las funciones al Web Worker desde el script principal?

¡Gracias por adelantado!

Actualizar:

Se me ocurrió este polyfill, que debe llamarse desde dentro de la función onmessage del Worker. Sin embargo, esta no es una solución muy elegante y lo agradecería, si alguien supiera de una mejor manera.

 function importScript(path){ return new Promise((resolve, reject) => { fetch(path).then((response) => { if(response.status == 200){ return response.text(); } }).then((script) => { if(typeof(script) == 'undefined'){ // Import failed reject(); } else{ // Remove export statement from script script = script.replace(/export(.*);/m, ''); // Create blob var blob = new Blob([script], {type : 'text/javascript'}); var url = URL.createObjectURL(blob); self.importScripts(url); resolve(); } }); }); }

Editar: Esto no es un duplicado de Web Workers - ¡Cómo importar módulos !

Las respuestas aceptadas sobre esa pregunta solo representan los navegadores basados en Chromium, estoy buscando una solución de navegador cruzado.

about 4 years ago · Santiago Gelvez
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!