gpt4 book ai didi

electron - ipcMain需要帮助

转载 作者:行者123 更新时间:2023-12-03 12:37:09 25 4
gpt4 key购买 nike

我正在尝试将回复消息发送回我的渲染器。在渲染中,我在控制台日志中得到了“未定义”的打印内容。我正在尝试从我的api调用中获取json响应
到目前为止,我尝试了以下方法

ipcMain.on("get_scenes", (event, arg) => {
axios.get("http://localhost:60704/getMovies").then(function (response) {
// handle success
console.log("my message", response);
});
event.returnValue = response;
});
ipcMain.on("get_scenes", (event, arg) => {
axios.get("http://localhost:60704/getMovies").then(function (response) {
// handle success
console.log("my message", response);
event.returnValue = response;
});

});

最佳答案

示例1中的问题是,不能从声明其的函数外部获取response变量。
示例2中的问题是axios.get(是异步的,这意味着它无法像同步函数那样立即获得响应。这意味着event.returnValue设置得太迟了,响应将不起作用。
解决方案是使用新消息答复,如下所示:

ipcMain.on("get_scenes", (event, arg) => {
axios.get("http://localhost:60704/getMovies").then(function (response) {
event.sender.send('scenes_response', response);
});
});
然后像这样在渲染器中接收它:
var ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.on('scenes_response', function (evt, messageObj) {
// messageObj Now contains the response.
console.log(messageObj);
});

关于electron - ipcMain需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66324612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com