2017-12-27 9 views
1

Wir entwickeln eine ionische Anwendung. Ich habe einen Dienst (.ts) erstellt und einen Geo-Json-Pfadfinder importiert. Die Initialisierung dieses Pfadfinders dauert 10-20 Sekunden und sollte daher in einen Worker (.js) ausgelagert werden.Module in einem eckigen Worker importieren?

import PathFinder from 'geojson-path-finder'; 

an der Spitze meiner worker.js gibt einen Fehler zurück:

SyntaxError: import declarations may only appear at top level of a module

Wie ich damit umgehen? Und kann ich diesen Pfadfinder so in meinen ui-Thread schicken?

let pathfinder : Pathfinder = new Pathfinder(geojson); 
self.postMessage({obj: pathfinder}) 

Antwort

1

Es gibt zwei Probleme.

  1. Höchstwahrscheinlich können Sie den Pfadfinder nicht einfach so übergeben. Lesen Sie die Dokumentation sorgfältiger. Sie werden sehen, dass Sie nur das Ergebnis der Graphenvorverarbeitung übergeben sollten. Check the sourcecode of the project, können Sie sehen, wie sie erhalten werden.

    const preprocessedGraph = preprocess(graph, options); 
    

    Sie müssen etwas damit herumspielen, damit es macht, was Sie brauchen.

    const myWorker = new Worker("worker.js", "module"); 
    
:

  • Um ES6 Module in Web-Arbeiter, verwenden Sie den zweiten Parameter zu importieren

  • Verwandte Themen