Итерация строк в файле с помощью Node.js и CoffeeScript

Я повторяю строки в файле, используя Node.js с CoffeScript и следующую функцию:

each_line_in = (stream, func) ->
    fs.stat stream.path, (err, stats) ->
        previous = []
        stream.on 'data', (d) ->
            start = cur = 0
            for c in d
                cur++
                if c == 10
                    previous.push(d.slice(start, cur))
                    func previous.join('')
                    previous = []
                    start = cur
            previous.push(d.slice(start, cur)) if start != cur

Есть ли лучший способ сделать это без чтения всего файла в память? Под «лучше» я подразумеваю более сжатый, встроенный в Node.js, более быстрый или Правильнее. Если бы я писал Python, я бы сделал что-то вроде этого:

def each_line_in(file_obj, func):
    [ func(l) for l in file_obj ]

Я видел это вопрос который использует "ленивый" Петериса Крумина модуль , но я бы хотел выполнить это без добавления внешней зависимости.

5
задан Community 23 May 2017 в 12:19
поделиться