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

310
Views
JavaScript: no se puede encontrar el archivo importado

Estoy tratando de crear un trabajador de JavaScript, donde necesito la biblioteca JSONfn . No estoy completamente seguro de cómo importarlo.

 <html> <script type="text/javascript" src="jsonfn.js"></script> <script id="worker" type="javascript/worker"> self.onmessage = function f(message){ console.log(JSONfn.parse(message...) } ... </script> <html>

Obtuve el siguiente error:

 Uncaught ReferenceError: JSONfn is not defined
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para importar scripts externos en su Web Worker, puede usar el método importScripts() disponible en contextos de Worker que no son módulos.

Sin embargo, esta biblioteca en particular no parece estar diseñada para usarse en un Worker (llama al captador de window , que no está disponible en contextos de Worker). Parece que simplemente redirigir la window a self funciona, pero es muy posible que falle en otros lugares.

Además, para analizar desde el hilo principal, obviamente tendrá que cargar la biblioteca nuevamente en ese contexto (a través de un <script> ).

 const worker_url = URL.createObjectURL(new Blob([document.querySelector("[type=worker]").textContent], {type: "text/javascript"})); const worker = new Worker(worker_url); worker.onmessage = (evt) => { console.log("received", evt.data); const parsed = JSONfn.parse(evt.data); console.log(parsed) console.log(parsed.baz()); };
 <script type="worker"> window = self; // jsonfn uses "window" importScripts("https://cdn.jsdelivr.net/gh/vkiryukhin/jsonfn/jsonfn.js"); const obj = {foo: "bar", baz: function() { return "blah"; }} const json = JSONfn.stringify(obj); postMessage(json); </script> <!-- to parse from the main thread we need to load the library here too --> <script src="https://cdn.jsdelivr.net/gh/vkiryukhin/jsonfn/jsonfn.js"></script>

También tenga en cuenta que esta biblioteca requiere que declare su función con la palabra clave function (las funciones de flecha o la sintaxis de métodos no son compatibles), y que no podrá recuperar nada fuera del alcance de la función, realmente solo copia el código fuente, nada sobre el contexto.

about 4 years ago · Juan Pablo Isaza Report
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!