Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

使用 generator 按行读取文件的库,co-readline

$
0
0

co-readline

Build Status

codecov

Read a file line by line in generator/co style.

install

$ npm i co-readline

easy example

var coReadline = require('co-readline')
var co = require('co')

co(function * () {
  var NORMAL_FILE_PATH = 'absolute_path_to_file'
  var rlGen = coReadline(NORMAL_FILE_PATH)

  var lines = []

  for (var line of rlGen) {
    if (line.then) { // `line` could be Promise or String
      line = yield line;
    }

    lines.push(line)
  }

  var fileContent = yield fs.readFile(NORMAL_FILE_PATH, 'utf-8')
  fileContent.should.equal(lines.join('\n'))
})

api

coReadline(filePath) return a generator, then do for..of to it

benchmark

About 1/3 speed of build-in readline module

About 1/6 speed of fs.readFileSync

Read about 1 million lines per second


Viewing all articles
Browse latest Browse all 14821

Trending Articles