Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

320
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda