gpt4 book ai didi

javascript - 如何迭代 "line-by-line"npm 中的所有行?

转载 作者:行者123 更新时间:2023-12-02 14:51:16 27 4
gpt4 key购买 nike

作为临时方法,我使用 .txt 文件来存储程序的某些变量。写入与 fs.appendFile 完美配合,但考虑到它的大小,使用 fs.readFile 读取不合适 - 我想得到某一行 来自文件,以及 npm line-by-line有人告诉我可能会有所帮助。

不过,我有点迷失了。这是我调用的函数:

function LBL_SetValueToLine(path, lineid, value){

var lr = new lblreader(path);
var m = 0;

lr.on('line', function (line) {
// 'line' contains the current line without the trailing newline character.
m=+1;
if(m==lineid){ value = line; };
});

};

调用本身就像通常的函数调用一样发生,所有输入变量肯定都是正确的。

我本应该认为这不是一个正确的方法,但文档说,这是同步方法。但是,我可以看到 .on 的工作是 asysnc,因为它需要函数输入。

不确定它是否与问题有关,但无论如何,函数调用后的 console.log 始终表明该变量尚未更改。

我该怎么做?

最佳答案

您可以使用Readline由核心 Node API 提供的模块。

Readline API Example for Line-by-Line

const readline = require('readline');
const fs = require('fs');

const rl = readline.createInterface({
input: fs.createReadStream('sample.txt')
});

rl.on('line', (line) => {
console.log('Line from file:', line);
});

上面的例子取自 Node Readline API Docs

关于javascript - 如何迭代 "line-by-line"npm 中的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36167707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com