#electron
#electron
Вопрос:
Я тестирую worker_thread в приложении electron. В настоящее время я использую версию 11.0.2.
Код прост, работает и возвращает образцы данных, но, похоже, я не могу войти в код.
Основной процесс:
import { Worker, isMainThread, workerData } from 'worker_threads';
config.ipcMain.on('entries:search', (evt: any, opts: any) => {
if (isMainThread) {
const pathWorker = path.join(__dirname, '../data/entries_worker.js');
const worker = new Worker(pathWorker, {
workerData: opts.value,
});
worker.on('message', (data) => {
debugger;
const d = 1;
});
worker.on('error', (data) => {
debugger;
const d = 1;
});
worker.on('exit', (data) => {
debugger;
const d = 1;
});
}
});
Код рабочего файла:
import { workerData, parentPort } from 'worker_threads';
debugger;
parentPort.postMessage({ status: 'Done' });
Я использую код Visual Studio, и я ставлю точки останова и вызываю оператор debugger, но, похоже, он никогда не проникает в рабочий файл.
Событие message действительно получает ответ от сценария { status: ‘Done’ }, а событие exit возвращает 0.
Любые идеи о том, как я могу остановиться на точке останова в рабочем файле entries_worker.js ?
Обновить
Нашел следующую ссылку о том, что она сейчас недоступна. Я не уверен на 100%, изменилось ли это
Ответ №1:
ndb разрешает рабочий поток отладчика. запустите в среде разработки следующим образом:
"electron-dev": "ndb electron ."
Когда вы используете рабочий поток, вы можете легко найти его:
Вы также можете добавлять точки останова для отладки вашего кода: