每 500 毫秒执行一次批处理任务

Batch task execution every 500ms

您好,有一个 react/node 应用程序,它从应用程序外部接收消息。收到消息后,我的 React 应用程序会显示桌面通知并发出提示音。我的这个运行良好,除了如果应用程序在短时间内收到多条消息(即 10 条消息)window,我会看到多个桌面通知和多个声音。

我显然需要该应用程序来处理 10 条传入的消息,但我无法找到将通知提醒"batch" 合并为单个通知的方法。

我看过 async/cargo,但实际上看起来与我想要的相反。 我需要能够说 "send a notification and sound once for each set of messages that the app receives within 500ms".

我不是在寻找代码方面的帮助,而是在寻求概念上的帮助。是否有一些软件包可以帮助简化此类操作?

您想限制或消除调用以显示通知和 ping。 Lodash 和 rxjs 是提供此功能的库。

限制一个函数意味着该函数的调用频率不能超过限制时间,即每 N 毫秒不超过一次,而去抖动会等到指定时间过去后函数才被调用wasn't/isn' 调用然后最终调用该函数,即每次调用该函数时,它在调用回调之前等待 N 毫秒,如果在到期之前调用,计时器将重置。

rxjs 有一个更陡峭的学习曲线,但如果你已经在使用它或事件 streams/observables 那么它会很适合。Lodash 将与现有的函数回调一起工作。