【发布时间】:2019-07-10 22:30:52
【问题描述】:
我正在编写一个电子应用程序。在渲染器进程中,有一个事件的处理。
事件可以以可能重叠的方式多次触发。所以需要堆叠和顺序处理事件实例,如果它们重叠的话。
ipcRenderer.on('doWork', function (event, args) {
doWork();
});
由于目标是防止 doWork 执行重叠,因此已尝试以执行的方式使其成为 Promise,如果有更多事件发生,它们就会堆积起来。但我无法构建算法。
我在 stackoverflow 上发现的其他问题总是关于预定义/已知数量的 Promise(如果我遗漏了什么,请见谅)。
编辑:问题如下:
How can I execute array of promises in sequential order?
Execute many promises sequentially (Concept)
在doWork 内部,我正在调用电子的desktopCapturer.getSources,它是异步的。然后我保存到文件系统,并确保保存最大数量的屏幕截图,但这些使用的是同步 Nodejs 操作。
【问题讨论】:
-
是否可以包含指向“其他”堆栈溢出问题的链接?
-
doWork执行永远不会重叠,除非它本身调用异步 API。但除非这是真的,否则它将使 JS 保持忙碌,并且在doWork完成之前不会处理任何新事件。因此,您可以看到提供有关doWork的详细信息很重要。 -
堆栈承诺正是您想要避免的。考虑改用 Observables
-
搜索词queuing promises
-
@MaximeLaunois 是的,您可以将该问题标记为可能与另一个问题重复
标签: javascript promise electron