Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
Deno: ¿"Los trabajadores clásicos no son compatibles"?

Quería crear un Web Worker así:

 const blob = URL.createObjectURL(new Blob([` ... `], {type: 'text/javascript'})) const worker = new Worker(blob)

Pero al hacerlo en Deno obtengo:

 error: Uncaught NotSupported: Classic workers are not supported. const worker = new Worker(blob) ^

Busqué en Google este mensaje "Los trabajadores clásicos no son compatibles" y básicamente no encontré nada que explique la historia detrás de él o qué significa específicamente. Encontré un poco sobre una forma especial de Deno de crear trabajadores:

 const worker = new Worker(new URL("worker.js", import.meta.url).href, { type: "module", deno: true, }); worker.postMessage({ filename: "./log.txt" });

pero no parece satisfacer mis necesidades porque específicamente necesito inicializar un trabajador dinámicamente desde una cadena (o al menos desde una función arbitraria pasada en tiempo de ejecución).

¿Hay alguna forma de hacer lo que necesito hacer en Deno?

Editar: logré encontrar esta página en los documentos (los documentos de Deno tienen problemas para mostrar resultados en los motores de búsqueda, por alguna razón), aunque no es un buen augurio porque parece que no hay manera de hacer lo que necesito para hacer https://deno.land/manual/runtime/web_platform_apis#web-worker-api

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Actualmente, Deno no admite trabajadores "clásicos".

  1. Desde Worker() - API web | MDN :

    type : un DOMString que especifica el tipo de trabajador que se va a crear. El valor puede ser classic o module . Si no se especifica, el valor predeterminado utilizado es classic .

  2. de los trabajadores | manuales | Deno :

    Actualmente, Deno solo admite trabajadores de tipo module ; por lo tanto, es esencial pasar el type: "module" al crear un nuevo trabajador.

Para su caso de uso, es posible que pueda usar una URL de datos . p.ej:

 new Worker( `data:text/javascript;base64,${btoa( `console.log("hello world"); self.close();` )}`, { type: "module" } );
about 4 years ago · Juan Pablo Isaza Relatório

0

La información provista en la respuesta de mfulton26 es correcta, pero no necesita una URL de datos: simplemente necesita agregar { type: "module" } a las opciones de instanciación de su trabajador. Deno incluso admite TypeScript como fuente para su trabajador:

blob-worker.ts :

 const workerModuleSource = ` const version: string = Deno.version.deno; console.log(\`Hello from Deno v\${version}\`); self.close(); `; const blob = new Blob( [workerModuleSource], {type: 'application/typescript'}, ); const objUrl = URL.createObjectURL(blob); const worker = new Worker(objUrl, { deno: true, type: 'module', }); URL.revokeObjectURL(objUrl);
 $ deno run --unstable blob-worker.ts Hello from Deno v1.14.1
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda