feat(read-chunk): handle 0 size

This commit is contained in:
Julien Fontanet 2021-04-07 12:51:27 +02:00
parent 538253cdc1
commit 959c955616

View File

@ -1,27 +1,29 @@
exports.readChunk = (stream, size) => exports.readChunk = (stream, size) =>
new Promise((resolve, reject) => { size === 0
function onEnd() { ? Promise.resolve(Buffer.alloc(0))
resolve(null) : new Promise((resolve, reject) => {
removeListeners() function onEnd() {
} resolve(null)
function onError(error) { removeListeners()
reject(error) }
removeListeners() function onError(error) {
} reject(error)
function onReadable() { removeListeners()
const data = stream.read(size) }
if (data !== null) { function onReadable() {
resolve(data) const data = stream.read(size)
removeListeners() if (data !== null) {
} resolve(data)
} removeListeners()
function removeListeners() { }
stream.removeListener('end', onEnd) }
stream.removeListener('error', onError) function removeListeners() {
stream.removeListener('readable', onReadable) stream.removeListener('end', onEnd)
} stream.removeListener('error', onError)
stream.on('end', onEnd) stream.removeListener('readable', onReadable)
stream.on('error', onError) }
stream.on('readable', onReadable) stream.on('end', onEnd)
onReadable() stream.on('error', onError)
}) stream.on('readable', onReadable)
onReadable()
})