Импортировать модули в угловой Worker?

Мы разрабатываем ионное приложение. Я создал сервис (.ts) и импортировал geo-json-pathfinder. Инициализация этого поисковика занимает 10-20 секунд, поэтому я должен передать его в Worker(.js).

import PathFinder from 'geojson-path-finder';

вверху моего worker.js возвращает ошибку:

SyntaxError: объявления об импорте могут появляться только на верхнем уровне модуля

Как я могу справиться с этим? И могу ли я отправить этот указатель в мой поток пользовательского интерфейса, как это?

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

1 ответ

Есть два вопроса.

  1. Скорее всего, вы не можете просто так пройти путь. Читайте документацию более внимательно. Вы увидите, что вы должны только передать результат предварительной обработки графа. Проверьте исходный код проекта, вы можете увидеть, как они получены.

    const preprocessedGraph = preprocess(graph, options);
    

    Вам нужно будет немного возиться с этим, чтобы заставить его делать то, что вам нужно.

  2. Чтобы импортировать модули ES6 в веб-рабочий, используйте второй параметр:

    const myWorker = new Worker("worker.js", "module");
    
Другие вопросы по тегам