2017-12-27 983 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");