javascript - bootstrap - title tag html
Trabajadores Web-Cómo importar módulos (3)
Los módulos ES2015 en los trabajadores todavía no son compatibles con ningún navegador (de lo contrario, ni siquiera los que admiten módulos). Una vez que lo hacen, tienes que crear un trabajador como este:
new Worker("worker.js", { type: "module" });
Consulte: https://html.spec.whatwg.org/#module-worker-example
Por ahora tienes que usar importScripts()
.
Estos son los informes de error para cada navegador:
- Firefox
- Chromium (actualmente está detrás de una bandera:
--enable-experimental-web-platform-features
) - Webkit
- Edge (también esta página de uso )
Estoy usando los módulos de Import / Export ES2015.
En mi archivo de trabajo, cuando intento importar funciones como normalmente hago:
worker.js
import { a, b, c } from "./abc.js";
Recibo el error: SyntaxError: import declarations may only appear at top level of a module
Como estoy exportando funciones en mi módulo ''abc.js'', no estoy seguro de cómo usarlas usando la sintaxis antigua (y aparentemente en su salida):
self.importScripts( "/app/abc.js" );
Entonces, mi pregunta es, ¿cómo utilizamos la nueva sintaxis del módulo de importación con los trabajadores?
La segunda pregunta es, ¿qué importa importScripts
cuando importa desde un módulo en donde no se exporta ningún objeto global?
Los módulos de ES en los trabajadores ya están disponibles en Chrome, lo que habilita las características de la plataforma web experimental, utilizando el indicador adecuado al iniciar Chrome:
chrome.exe --enable-experimental-web-platform-features
Esta es la sintaxis que debe usar para cargar el script de trabajo como un módulo:
new Worker( ''my-worker.js'', { type : ''module'' } );
Esta característica ha sido desarrollada por casi un año, y debería estar disponible pronto, sin la necesidad de banderas especiales, sin embargo, aún no hay una fecha de lanzamiento oficial.
para mí asignarme a self.
funcionado bien. He puesto importación a otro archivo js: abcImported.js
import { a, b, c } from "./abc.js";
export { a, b, c };
y en el trabajador de servicio:
self.a = require(''abcImported.js'').a;
self.b = require(''abcImported.js'').b;
De esta manera, es accesible dentro del trabajador. (probado en cromo)