What is pause-stream?
The pause-stream package is a Node.js module that allows you to pause and resume streaming data. It is particularly useful in scenarios where you need to control the flow of data, for example, when processing or transforming data in chunks. It provides a simple API to pause the data stream, process the current chunk of data, and then resume the stream when ready.
What are pause-stream's main functionalities?
Pausing and resuming a stream
This feature allows you to pause the flow of data in a stream and then resume it. The code sample demonstrates how to create a readable stream from a file, pipe it through a pause-stream, pause the stream to process data, and then resume the stream.
"use strict";
const pause = require('pause-stream')();
const fs = require('fs');
let dataStream = fs.createReadStream('data.txt');
dataStream.pipe(pause);
pause.pause();
// Process data here
pause.resume();
Other packages similar to pause-stream
through2
Through2 is a tiny wrapper around Node streams.Transform (Streams2/3) to avoid explicit subclassing noise. It's similar to pause-stream in that it helps with stream manipulation, but it focuses more on transforming stream data rather than pausing and resuming.
highland
Highland.js manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams. While it offers much more than pausing and resuming streams, including a wide range of operations like map, filter, and reduce, it can be used for similar purposes but is more comprehensive.
PauseStream
This is a Stream
that will strictly buffer when paused.
Connect it to anything you need buffered.
var ps = require('pause-stream')();
badlyBehavedStream.pipe(ps.pause())
aLittleLater(function (err, data) {
ps.pipe(createAnotherStream(data))
ps.resume()
})
PauseStream
will buffer whenever paused.
it will buffer when yau have called pause
manually.
but also when it's downstream dest.write()===false
.
it will attempt to drain the buffer when you call resume
or the downstream emits 'drain'
PauseStream
is tested using stream-spec
and stream-tester
This is now the default case of
through
https://github.com/dominictarr/pause-stream/commit/4a6fe3dc2c11091b1efbfde912e0473719ed9cc0