Почему мое электронное событие откладывается на процесс рендеринга? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь переключить тумблер в электронном приложении, которое запускает экспресс-сервер и отправляет сообщение обратно приложению, на котором работает сервер.

Сейчас происходит переключениеперевернут, сервер включен, но событие не запускается обратно в процесс рендеринга, как должно.

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

index.js

const {app, BrowserWindow, ipcMain} = require('electron');

ipcMain.on('log', (event, arg) => {
  mainWindow.webContents.send('log', arg)
});

ipcMain.on('web-state', (event, current) => {
  current ? Web.turnOff() : Web.turnOn()
  event.sender.send('web-state', Web.isOn() ? true : false);
});

render.js

window.$ = window.jQuery = require('jquery');
const {ipcRenderer} = require('electron');

ipcRenderer.on('log', function(event , data) {
  console.log(data);
});

$('#web-switch').on('click', function(e) {
  var Server = !document.getElementById("web-switch").checked? Web.turnOff() : Web.turnOn();
});

server.js

const Express = require('express');
const Web = Express();
const Logger = require('./logger.js');
var Server;
let mainWindow;

function turnOn() {
  return Server = Web.listen(Config.web.port || 4000, function() {
    let str = 'App awakens on port ' + Config.web.port;
    Logger.log(str, t);
  });
}

module.exports = {
  turnOn: function() {
    return turnOn();
  },
  isOn: function() {
    return Server? Server.address() : false;
  }
}

logger.js

const {ipcRenderer} = require('electron');

function log(data, level) {
    let str = 'something';
    ipcRenderer.send('log', str);
}

module.exports = {
    log: function(data, level) {
       log(data,level)
    }
}

index.html

require('../js/render.js');
<input type="checkbox" id="web-switch" name="web-switch">

1 Ответ

0 голосов
/ 27 сентября 2018

Я исправил это, отредактировав мою turnOn() функцию в server.js

function turnOn() {
  Server = Web.listen(Config.web.port || 4000);
  let str = 'App awakens on port ' + Config.web.port;
  Logger.log(str, t);
  return Server;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...