Понимание противодавления потока - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь понять обратное давление потока в Nodejs. Я получаю основы после прочтения https://nodejs.org/en/docs/guides/backpressuring-in-streams/. Но я запутался в том, что мне следует делать в сценариях, где pipe нельзя использовать напрямую.

например. Если я в потоковом режиме скачать файл в zip.

var fs = require('fs');
const request = require('request');
const archiver = require('archiver');


var output = fs.createWriteStream('stream_to_zip.zip');
var archive = archiver('zip', {
  zlib: { level: 9 }
});
// pipe archive data to the file
archive.pipe(output);

const stream = request('https://i.imgur.com/FI0XpDV.jpg');
archive.append(stream, { name: 'pictures/dog.jpg' });

const stream2 = request('https://i.imgur.com/iqz0XlX.jpg');
archive.append(stream2, { name: 'pictures/holiday.jpg' });

archive.finalize();

По сути, я хотел бы знать, если

archive.append(stream, { name: 'pictures/dog.jpg' });

защищен от противодавления? Это выделяется для меня, потому что я не могу просто позвонить

archive.pipe(stream)

так как мне нужно указать имя файла.

...