无法以电子方式发送和接收数据

问题描述

我正在制作一个电子应用程序,但无法发送或接收数据。我想将源自main.js的数据发送到mainWindow.html。我在sqlite 3中使用knex。我尝试了几种方法。感谢您的任何帮助,谢谢。


相关代码


main.js

app.on("ready",function () {
    [...]

    taskContents = [];

    knex
    .select("task")
    .from("task")
    .then((task) => {
        for (var i = 0; i < task.length; i++) {
            // console.log(task[i].task);
            taskContents.push(task[i].task);
        }

            // I want to send task contents ===================
        ipcMain.on("item:task",function(e,taskContents){
        mainWindow.webContents.send("item:task",taskContents);
    
    }
        

    }).catch(function (error) {
        console.error(error);
    });

    [...]    

});

mainWindow.html

  ipcRenderer.on("item:tasks",item){
    console.log(item);
  });

解决方法

main.js 中,您具有以下代码:

ipcMain.on("item:task",function(e,taskContents){
    mainWindow.webContents.send("item:task",taskContents);
}

这意味着它将在向item:task发送item:task消息之前在主进程中等待mainWindow消息。

我建议像这样删除ipcMain.on

mainWindow.webContents.send("item:task",'messageData');

而且在您的 mainWindow.html 中,您使用的是item:tasks而不是item:task

例如应该是:

ipcRenderer.on("item:task",item){

代替:

ipcRenderer.on("item:tasks",item){