node.js使用readline按行读取文件内容到Array中

具体代码实现如下:

var fs = require("fs");
var readLine = require("readline");

/**
 * 按行读取文件内容
 *
 * @param fReadName 文件名路径
 * @param cb 回调函数
 *
 * @return 字符串数组
 */
function readFileToArr(fReadName, cb) {

    var arr = [];
    var readObj = readLine.createInterface({
        input: fs.createReadStream(fReadName)
    });

    readObj.on('line', function (line) {
        arr.push(line);
    });
    readObj.on('close', function () {
        console.log('readLine close....');
        cb(arr);
    });
}

readFileToArr('ObserverMode.js', function (arr) {
    console.log(arr);
});

使用到的实例代码如下:

//ObserverMode.js

const queuedObservers = new Set();

const observe = fn => queuedObservers.add(fn);
const observable = obj => new Proxy(obj, {set});

function set(target, key, value, receiver) {
    const result = Reflect.set(target, key, value, receiver);
    queuedObservers.forEach(observer => observer());
    return result;
}

const person = observable({
    name: '张三',
    age: 20
});

function print() {
    console.log(`${person.name}, ${person.age}`)
}

observe(print);
person.name = '李四';

示例执行结果如下:

"D:\software\WebStorm 2017.2.4\bin\runnerw.exe" "D:\Program Files\nodejs\node.exe" D:\Workspaces\Webstorm\web\javascript\ES6\src\readFileToArr.js
readLine close....
[ '',
  'const queuedObservers = new Set();',
  '',
  'const observe = fn => queuedObservers.add(fn);',
  'const observable = obj => new Proxy(obj, {set});',
  '',
  'function set(target, key, value, receiver) {',
  '    const result = Reflect.set(target, key, value, receiver);',
  '    queuedObservers.forEach(observer => observer());',
  '    return result;',
  '}',
  '',
  'const person = observable({',
  '    name: \'张三\',',
  '    age: 20',
  '});',
  '',
  'function print() {',
  '    console.log(`${person.name}, ${person.age}`)',
  '}',
  '',
  'observe(print);',
  'person.name = \'李四\';',
  '' ]

Process finished with exit code 0
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值