33

Read all data from a Readable stream at once with Promise

 5 years ago
source link: https://www.tuicool.com/articles/hit/yQRFZrF
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

read-all

Read all data from a Readable stream and get notified when Promise is resolved.

Installation

Using npm:

$ npm install node-read-all

Using yarn:

$ yarn add node-read-all

Usage

const fs = require('fs');
const readAll = require('node-read-all');

const rStream = fs.createReadStream('file.txt');
rStream.setEncoding('utf8');
readAll(rStream)
  .then(data => console.log(data))
  .catch(console.error.bind(console));

When stream is in object mode:

const { Transform } = require('stream');
const readAll = require('node-read-all');

const transformStream = new Transform({
  readableObjectMode: true,
  transform(chunk, encoding, callback) {
    this.push({ value: chunk.toString() });
    callback();
  },
});

readAll(transformStream)
  .then(data => console.log(data))
  .catch(console.error.bind(console));

setTimeout(() => {
  transformStream.write('a');
  transformStream.write('b');
  transformStream.write('c');
  transformStream.end();
}, 1000);

Contributing

Your PRs and stars are always welcome.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK