为了账号安全,请及时绑定邮箱和手机立即绑定

在main.js中使用ipcMain监听事件,为什么有的地方可以用event.sender去发送信息,有的地方却只能用mainWindow来发送呢?

在main.js中使用ipcMain监听事件,为什么在有的地方可以用event.sender去发送信息,有的地方却只能用mainWindow来发送呢?

ipcMain.on("select-music-files", (event, params) => {    
    dialog.showOpenDialog({        
        "properties": ["openFile", "multiSelections"], 
        "filters": [{ "name": "Music", "extensions": ["mp3"] }]
     })
     .then(res => {
         if (!res.canceled && res.filePaths.length > 0) {
             // 这里却可以用event.sender
             event.sender.send("selected-music-files", { "musicFiles": res.filePaths });
         }
     })
     .catch(err => {      console.log(err);    });  });  ipcMain.on("import-music-files", (event, params) => {    if (Array.isArray(params.musicFiles) && params.musicFiles.length > 0) {      const musicFiles = musicDataStore.addTracks(params.musicFiles);      // 这里尝试过,event.sender无法发送      mainWindow.send("render-music-files", { musicFiles });    }  });  ipcMain.on("delete-music-file", (event, params) => {    const musicFiles = musicDataStore.deleteTrack(params.id);    // 这里尝试过,event.sender无法发送    mainWindow.send("render-music-files", { musicFiles });  });


正在回答

1 回答

mainWindow指定发送,而event.sender进程内回调发送。

就是一个页面内发信息发送到main.js,然后用event.sender进行进程内在发送回去。

而mainwindow实际上是新建的一个进程窗口,我们就指定给他发送了。

望采纳,我也是刚学习。

1 回复 有任何疑惑可以回复我~
#1

_Jack_Han_ 提问者

谢谢你的解答!你真棒,同是刚学习的人。
2020-02-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在main.js中使用ipcMain监听事件,为什么有的地方可以用event.sender去发送信息,有的地方却只能用mainWindow来发送呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信