晚上好!你能告诉我如何在循环中的每次迭代中从主进程获取数据到渲染进程,以便向用户显示该进程吗?谢谢!
main.js
ipcMain.handle('get-some-backend-data', (event) => {
for (let i = 0; i < 3; i++) {
return(i);
}
});
preload.js
getSomeBackendData: () => ipcRenderer.invoke('get-some-backend-data')
renderer.js
async function handleGetSomeBackendData() {
try {
let result = await window.electron.ipcRenderer.getSomeBackendData(
'get-some-backend-data'
);
console.log(result); // i need get (0,1,2), but i have got 0, of course
} catch (error) {
console.error(error);
}
}
1条答案
按热度按时间cbjzeqam1#
如果你的目标是从
ipcMain.handle
返回一个数组,那么你应该从每次迭代中收集数据,并在完成后返回整个数组。main.js
renderer.js
如果这不是您想要的,您需要共享更多的
ipcMain
处理程序代码,以显示您在该循环中所做的事情。详细说明这个问题:这不是电子特有的。如果你从任何一个常规JS函数的循环中返回,整个函数将返回
return
语句的参数,然后完成(大多数其他主流语言也是如此)。也就是说,JavaScript支持挂起函数执行,可选地返回一个结果,并能够在稍后执行(并可能返回另一个结果)。这是使用生成器函数完成的,参见
function*
。然而,它们是非常具体的,通常不是你想要或需要的。