Я пытаюсь понять обратное давление потока в 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)
так как мне нужно указать имя файла.