Как я могу многопоточность в Electron с совместимостью для функций Node.JS и JQuery? - PullRequest
0 голосов
/ 26 апреля 2018

Я программирую приложение Electron, и несколько страниц предназначены для обновления таблицы в режиме реального времени путем извлечения строк Json из моего веб-API.От этого зависит то, что мою таблицу сначала нужно загрузить в документ (HTML), до или после (это не имеет значения) я запускаю новый поток JavaScript.Мне уже нужно использовать основной процесс для обработки событий кнопок и таблиц.

Поток используется для непрерывного извлечения данных, и если он обнаруживает отличия от текущего загруженного документа, он помещает эти изменения обратно всервер.Сейчас у меня проблемы с запуском нового потока, который имеет полный доступ к предварительно загруженным функциям JS, которые используются в Node, Electron и JQuery.

Вот список того, что я пробовал, и почему это пошло не так,так что, может быть, вы можете помочь мне найти решение или предложить новое направление (может быть, другой модуль NPM?):

  • Vanilla WebWorkers |Не удалось использовать какие-либо предопределенные функции из Node, Electron, JQuery, потому что он запускает совершенно новый процесс.
  • Node child_process |Эта встроенная функция создает новый поток.Тем не менее, он работает в совершенно другой среде, что означает, что я не могу видеть вывод, если он есть на консоли / документе.
  • Electron WebWorkers |Я нашел их в Документах и ​​включил NodeIntegrationInWorker.Однако была ошибка, что он не смог найти файлы из works / api / etc, и я тоже не смог найти эти файлы.Важно отметить, что это не был модуль, который мне пришлось установить, поэтому IDK, где эти файлы даже находятся в моей системе после 30 минут поиска.
  • Есть также несколько различных модулей NPM, которые я установил вбезрезультатно, в основном потому, что они были изолированы (например, расширенные WebWorkers, подобные Electron WebWorkers) или были изолированы (Расширение функции child_process (). fork, которая тоже не работала, из Node).
    • нод-процесс
    • workerjs
    • потоков
    • webworker-ng
    • потоков webworker

Наконец, в попытке исправить третий вариант, который я упомянул, я попытался сосредоточиться на пути ASAR, упомянутом здесь .Это исправило эту ошибку:

Uncaught Error: ENOENT, worker\api\exports\electron.js not found

Но теперь я нахожусь в точке, где поток, вероятно, запускается, когда я загружаю страницу, но не записывает даже простое «Привет» на консоль, вероятно, из-заэта замечательная изоляция нити.

TLDR;Мне нужен способ запустить второй поток в Electron, который имеет полный доступ к предопределенным объектам.Мы надеемся, что этот параметр должен выполняться позади основного процесса, не останавливая загрузку страницы после того, как она переходит в бесконечный цикл True (* True).

, пожалуйста, пришлите любую помощь, я был бы очень признателенесли у вас есть какие-либо вопросы или вы хотите, чтобы я разработал / отредактировал свое сообщение, пожалуйста, прокомментируйте его перед тем, как голосовать, я все еще новичок в этом сайте.

...