Size: a a a

Node.js — русскоговорящее сообщество

2019 November 25

V

Victor in Node.js — русскоговорящее сообщество
Записи в бд
источник

Ð

Ð in Node.js — русскоговорящее сообщество
а, типа там итератор будет сам ставиться на паузу до следующего некста
источник

Б

Богдан in Node.js — русскоговорящее сообщество
какой-то нерабочий вариант
источник

Б

Богдан in Node.js — русскоговорящее сообщество
получается файл считался в какой-то буфер
источник

Ð

Ð in Node.js — русскоговорящее сообщество
значит, либо итератор не ставится на паузу, либо все твои лайны приходят в одном чанке. Сделай их большими.
источник

Б

Богдан in Node.js — русскоговорящее сообщество
вот так вроде уже видно что приостановился, но только на один чанк
источник

Ð

Ð in Node.js — русскоговорящее сообщество
верни задержку и сделай файл хотя бы килобайт на 100
источник

Б

Богдан in Node.js — русскоговорящее сообщество
источник

Б

Богдан in Node.js — русскоговорящее сообщество
источник

Б

Богдан in Node.js — русскоговорящее сообщество
файлик уже 3 мегабайта
источник

V

Victor in Node.js — русскоговорящее сообщество
Странно)
источник

Ð

Ð in Node.js — русскоговорящее сообщество
то есть он не ставит стрим на паузу, а кормит его пока файл не закончится, да?
источник

Б

Богдан in Node.js — русскоговорящее сообщество
const fs = require('fs');
const readline = require('readline');

(async() => {
 const delay = t => new Promise(r => setTimeout(r, t));

 const fileStream = fs.createReadStream('./tmp/1.txt');

 fileStream.on('end', async () => console.log('end'));

 const rl = readline.createInterface({
   input: fileStream,
   crlfDelay: Infinity
 });

 for await (const line of rl) {
   await delay(50);
   console.log(`Line from file: ${line}`);
 }
})();
источник

Б

Богдан in Node.js — русскоговорящее сообщество
Ð
то есть он не ставит стрим на паузу, а кормит его пока файл не закончится, да?
выходит он считывает файл в буфер внутренний, а далее считывет построчно с этого буфера
источник

Б

Богдан in Node.js — русскоговорящее сообщество
нода у меня 12.13
источник

Ð

Ð in Node.js — русскоговорящее сообщество
ну тогда ты можешь сделать вручную так как это делает пайп: используй вместо on data с паузами readable.read, прибавляй чанк к буферу, потом сплить буфер по \n, процессь строки (кроме последней, она неполная), пиши их в бд, очищай буфер до последнего \n, и возвращайся к чтению следующего чанка.
источник

V

Victor in Node.js — русскоговорящее сообщество
А что будет если поставить highWaterMark 0?
источник

Б

Богдан in Node.js — русскоговорящее сообщество
Ð
ну тогда ты можешь сделать вручную так как это делает пайп: используй вместо on data с паузами readable.read, прибавляй чанк к буферу, потом сплить буфер по \n, процессь строки (кроме последней, она неполная), пиши их в бд, очищай буфер до последнего \n, и возвращайся к чтению следующего чанка.
сенкс, вот вопрос, а как понять последний чанк млм нет?
источник

Ð

Ð in Node.js — русскоговорящее сообщество
Богдан
сенкс, вот вопрос, а как понять последний чанк млм нет?
последний надо процессить когда стрим закончится
источник

Б

Богдан in Node.js — русскоговорящее сообщество
в readable.on('end') ?
источник