Выполнение пакетного задания каждые 500 мс - PullRequest
1 голос
/ 04 октября 2019

Привет, есть приложение реагировать / узел , которое получает сообщения извне приложения. При получении сообщения мое приложение реакции показывает уведомление на рабочем столе и пингует звук. У меня это работает хорошо, за исключением того, что если приложение получает несколько сообщений (т. Е. 10 сообщений) в коротком окне, я вижу несколько уведомлений на рабочем столе и несколько звуков.

Мне, очевидно, нужно приложение для обработки10 входящих сообщений, но у меня возникают проблемы с поиском способа «пакетировать» уведомления уведомлений в одно уведомление.

Я посмотрел на async/cargo, но на самом деле это выглядит как противоположность того, что я хочу. Мне нужно иметь возможность сказать "отправлять уведомление и звук один раз для каждого набора сообщений, которые приложение получает в течение 500 мсек" .

Я не ищудля справки кода, но больше концептуальной помощи. Существуют ли пакеты, которые помогают сделать что-то подобное?

1 Ответ

3 голосов
/ 04 октября 2019

Вы хотите ограничить или отменить вызов для отображения уведомления и пинга. Lodash и rxjs - это библиотеки, которые предлагают эту возможность.

Регулирование функции означает, что функция не может / не будет вызываться чаще, чем время регулирования, то есть не чаще, чем раз в N миллисекунд, тогда как ожидание отмены ожиданияпока не истечет указанное время, что функция не была / не была вызвана для последующего вызова этой функции, то есть каждый раз, когда вызывается функция, она ждет N миллисекунд до вызова обратного вызова, таймер сбрасывается, если вызывается раньшеистечение срока действия.

rxjs имеет более крутую кривую обучения, но если вы уже используете его или потоки событий / наблюдаемые, тогда он подойдет. Lodashработать с существующими функциональными обратными вызовами.

...