NodeJS ipcRenderer将自定义类作为对象传递

时间:2018-02-04 05:12:16

标签: javascript node.js electron

所以我有两个不同的窗口,分别由index1.js和index2.js控制。我在index1.js中创建了一个自定义的javascript类,我试图将同一个类对象解析为index2.js。我能够解析它但是console.log函数将其返回为类型' object '在index2.js中调用并输入' 颜色 '在index1.js中调用时。我如何在index2.js中引用 Color 对象。有关实施的任何建议。

  

index1.js

class Color extends EventEmitter {
    constructor(hex){
        this.hex = hex;
    }

    getRGB(r, g, b) {
        return r+g+b;
    }

    getHSV(h, s, v){
        return h+s+v;
    }
}

function _init(){
    let electron = reqire('electron');
    electron.ipcRenderer.send('color', new Color("#FFFFF"));
}
  

index2.js

window.onload = function() {
    const electron = require('electron');
    electron.ipcMain.on('color', function (myColor) {
        event.preventDefault();
        console.log(myColor);
    }
}

1 个答案:

答案 0 :(得分:0)

简而言之,你应该从接收方那里重建对象。

Electron的IPC仅发送可序列化的POJO,而Color继承EventEmitter,其中包含不可序列化的属性。要获取相同的对象,您需要通过serializable属性发送,然后在接收器中重建Color对象。