javascript - Electron -ipcRenderer.send()的SetTimeout

标签 javascript node.js electron settimeout

嗨,我是从ipcRenderer.send()文件中调用index.html的。
我想做的是将函数调用延迟5秒。但是,它似乎不起作用。
这实际上是我想要做的:setTimeout(ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);这是我如何在常规Native Javascript函数中执行此操作的方法:

function start(){
  setTimeout(ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);
}
难道我做错了什么?
但是,通过使用这种方法,我设法取得了一些进步。但是,它冻结了我的整个 Electron 程序,直到5秒钟过去了,这真的是不理想的:
function sleep(milliseconds) {
  const date = Date.now();
   let currentDate = null;
   do {
     currentDate = Date.now();
   } while (currentDate - date < milliseconds);
}

function start(){
  sleep(5000);
  ipcRenderer.send('startYellowApple', ["bob", "cat"]);
}
有人可以帮我吗?谢谢!

最佳答案

问题是如何将回调传递给setTimeout函数。

ipcRenderer.send('startYellowApple', ["bob", "cat"])
实际上是一个函数调用,它将立即调用,您应该将该调用包装在一个函数中以实现所需的功能。
function start(){
   setTimeout(() => ipcRenderer.send('startYellowApple', ["bob", "cat"]), 5000);
}

关于javascript - Electron -ipcRenderer.send()的SetTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65726998/

相关文章:

javascript - Electron - 获取表单数据

java - 使用 flyingsaucer 在 PDF 中使用 javascript

node.js - GitLab CI 与 Postgres 错误 : connect ECONNREFUSED 127. 0.0.1:5432

javascript - Electron应用程序webview.printToPDF() "Save As..."对话框

javascript - zapier-platform-cli 初始化错误!埃诺特 : no such file or directory

node.js - 如何从我的服务器中忽略或删除 dns 缓存浏览器?

Javascript console.log 端口

javascript - 有人可以解释以下示例中 ...spread 运算符的使用吗?

javascript - 如何在自定义 Polymer Web 元素中查询动态注入(inject)的光子元素?

javascript - Firefox 没有为多部分请求设置正确的内容类型