在角度工作者中导入模块?

时间:2017-12-27 17:38:02

标签: javascript angular ionic-framework ionic3 web-worker

我们正在开发一种离子应用。我创建了一个服务(.ts)并导入了一个geo-json-pathfinder。初始化这个探路者需要10-20秒,所以我应该把它外包给一个工人(.js)。

import PathFinder from 'geojson-path-finder';
在我的worker.js顶部的

返回错误:

  

SyntaxError:import声明只能出现在a的顶层   模块

我如何处理它?我能将这个探路者发送到我的ui线程吗?

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

1 个答案:

答案 0 :(得分:1)

有两个问题。

  1. 最有可能的是,你不能像这样通过路径查找器。请仔细阅读文档。你会看到你应该只传递图形预处理的结果。 Check the sourcecode of the project,您可以看到他们是如何获得的。

    const preprocessedGraph = preprocess(graph, options);
    

    你需要稍微弄清楚这一点,以使它做你需要的。

  2. 要将ES6模块导入Web worker,请使用第二个参数:

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