2017-12-27 986 views
1

我們正在開發一種離子應用。我創建了一個服務(.ts)並導入了一個geo-json-pathfinder。初始化這個探路者需要10-20秒,所以我應該把它外包給一個Worker(.js)。在角度工人中導入模塊?

import PathFinder from 'geojson-path-finder'; 

我worker.js頂部返回一個錯誤:

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

我如何處理呢?我能發送這個探路者到我的UI線程嗎?

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

回答

1

有兩個問題。

  1. 最有可能的是,你不能像這樣通過路徑查找器。請仔細閱讀文檔。你會看到你只應該通過圖預處理的結果。 Check the sourcecode of the project,你可以看到他們是如何獲得的。

    const preprocessedGraph = preprocess(graph, options); 
    

    您需要仔細斟酌一下才能使其滿足您的需求。

  2. 導入ES6模塊到網絡工作者,使用第二個參數:

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