Я написал этот код, который позволяет мне создавать читаемый поток в Node.js, который возвращает данные из deque как можно чаще:
const limiter = new RateLimiter(count, interval)
const deque = new Deque()
const getStream = () => {
const inStream = new Readable({
objectMode: true,
read() {}
})
setInterval(() => {
if (deque.length >= count) {
const result = limiter.tryRemoveTokens(count)
if (result) {
for (let i = 0; i < count; i++) {
inStream.push(deque.shift())
}
}
}
}, 1)
return inStream
}
Является ли хорошей практикой делать setInterval каждую 1 миллисекунду