得到"简单"电子中的远程对象

时间:2016-03-13 22:24:57

标签: javascript electron

当我在电子中调用远程函数时,结果总是充满getterssetters。我想我明白为什么会这样,但我希望能够得到简单的对象。

setters/getters

我目前的解决方案是:

import {remote} from 'electron'

const bridge = remote.require('bridge')  // This is a little script I create for talking to a python process. Over stdin/stdout i.e. pipes.

bridge.on('fileTreeUpdate', (data) => {
    myDataStore.update(JSON.parse(JSON.stringify(data.tree))
})

有更优雅的方法吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,我建议直接在渲染器中使用'bridge';这样,您根本不需要在Main和Renderer进程之间传递数据。

话虽如此,如果另一个要求只需要在Main进程中加载​​'bridge'模块,同时仍然从Renderer访问它的数据,我建议使用Electron的'ipc'模块。

例如,在您的主进程中,您可以执行以下操作(假设变量win是对您希望与之通信的呈现器进程的窗口的引用):

import bridge from 'bridge'

bridge.on('fileTreeUpdate', data => {
  // assuming win {BrowserWindow} has already been initialized
  win.webContents.send('bridge:fileTreeUpdate', data) 
})

在您的渲染器流程中(与win相关联):

import ipcRenderer from 'electron'

ipcRenderer.on('bridge:fileTreeUpdate', (event, data) => {
  myDataStore.update(data.tree)
})