Объект, обрабатывающий данные с заданными промежутками времени
Зависимостей нет. Может использоваться как на клиентской, так и на серверной стороне (разработка велась на io.js).
- new Conveyor - конструктор. Принимает следующие параметры:
- processor(dataElement, cb) - функция, обрабатывающая элемент данных dataElement. При установленном флаге useQueues после обработки данных должна вызывать cb() без параметров.
- params - объект, содержащий параметры. Могут быть переданы следующие параметры:
- period - период (в мс), с которым запускается обработка данных. По умолчанию 1000.
- useQueue - флаг, определяющий, нужно ли дожидаться окончания обработки одного элемента, чтобы приступать к обработке следующего. По умолчанию false.
- expectedElementsCounter - число раз, сколько будет вызвана функция add() прежде, чем обработчик вызовет функцию afterStopFunction(). По умолчанию 0 (функция будет вызвана после окончания обработки всех заданных элементов)
- afterStopFunction - функция, которая будет вызвана после обработки всех данных. По умолчанию undefined (может быть задана в whenStop(afterStopFunction)
- Add(dataElement) - функция, добавляющая элемент или массив элементов данных, которые нужно обработать. Обрабатываться элементы начинают сразу после добавления
- whenStop(afterStopFunction) - устанавливает функцию, которая будет вызвана после обработки всех имеющихся элементов данных. Если обработка данных к моменту вызова whenStop() не производится, то afterStopFunction будет вызвана немедленно.
- forceStop() - остановка обработки данных и вызов afterStopFunction, независимо от наличия необработанных элементов и от счётчика ожидаемых элементов данных (expectedElementsCounter)
- wait(count) - увеличить счётчик ожидаемых элементов данных (expectedElementsCounter) на count. По умолчанию count == 1.
- unwait(count) - уменьшить счётчик ожидаемых элементов данных (expectedElementsCounter) на count. По умолчанию count == 1.