Отладка рабочего потока в electron

#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 ."
 

Когда вы используете рабочий поток, вы можете легко найти его:
введите описание изображения здесь

Вы также можете добавлять точки останова для отладки вашего кода: введите описание изображения здесь