Показать сообщение отдельно
  #10 (permalink)  
Старый 22.06.2018, 11:30
Аспирант
Отправить личное сообщение для Andrew K Посмотреть профиль Найти все сообщения от Andrew K
 
Регистрация: 15.11.2014
Сообщений: 50

Спасибо EmperioAf за наводку на правильный путь! Документацию читал, то даже в голову не пришло что так можно было.

Напишу как понял почему программа так себя вела.

Файлы Основного процесса и процесса Отображения находятся как бы каждый в своей песочнице. Если просто обратиться к файлу из другого процесса, то он возвратит данные, которые находятся в файле. А при работе сценария новые данные записываются не в файл, а в оперативную память.

Для передачи данных между двумя процессами есть модуль IPC. В моем случае нужно из Основного процесса передать сообщение на запрос данных. В процессе Представления запрос будет услышан и отправлено сообщение с массивом данных. И в конце в Основном процессе будет получено сообщение с массивом из процесса Отображения.

Код:

main.js
// Отправить запрос в процесс Представления на получение массива элементов сцены
mainWindow.webContents.send('get-scene-arr');

// Получить ответ...
ipcMain.on('dispatch-scene-arr', (e, sceneElems) => {
	// Вывести данные в консоле
    console.log( sceneElems );
});


render.js
// Получить запрос из Основного процесса на получение массива с элементами сцены
ipcRenderer.on('get-scene-arr', function (e, args) {

	// Отправить сообщение в Основной процесс с массивом элементов сцены
	ipcRenderer.sendSync('dispatch-scene-arr', sceneElems);
});

Последний раз редактировалось Andrew K, 22.06.2018 в 11:33.
Ответить с цитированием