Обрабатывать сообщения отправителя событий последовательно - PullRequest
0 голосов
/ 14 апреля 2020
myEmitter.on('data', handleData).

Как я могу handleData вызываться последовательно, а не параллельно?

Например: n data сообщения приходят сгруппированы очень близко друг к другу во времени, и я хочу, чтобы они обрабатывались в порядок последовательно , никогда не параллельно.

Можно ли легко добиться этого с какой-нибудь библиотекой?

примечание: handleData asyn c

1 Ответ

0 голосов
/ 14 апреля 2020

Если у вас есть дополнительное событие, например end, вы сможете хранить каждый элемент данных в массиве в порядке их поступления. После получения события end вы можете последовательно обрабатывать ранее сохраненную очередь данных.

Пример:

const dataQueue = [];
myEmitter.on('data', data => dataQueue.push(data));
myEmitter.on('end', () => dataQueue.forEach(handleData));

Однако вы не сможете начать обработку до того, как все данные прибыли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...