tag bootstrap attribute javascript import module ecmascript-6 web-worker

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:

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)