我希望使用Node.js逐行读取文件,并在完成后将返回的结果作为JSON字符串获取。我试图这样做,但最终控制台打印的是未定义而不是列表。我已经获得了列表和Promise结尾,但如何将其返回给main.js中的调用函数?
我有一个main.js文件:
"romlist-parser.js"的内容如下:
我有一个main.js文件:
var fct = require('./romlist-parser');
console.log(fct.myfunction());
"romlist-parser.js"的内容如下:
var fs = require('fs');
var readline = require('readline');
exports.myfunction = function() {
var promise = new Promise(function(resolve,reject) {
var rd = readline.createInterface({
input: fs.createReadStream('Atari 2600.txt'),
console: false
});
var games = [];
rd.on('line', function(line) {
var arr = line.split(";");
games.push({name:arr[0], title:arr[1]});
});
rd.on('close', function() {
var json = JSON.stringify(games);
resolve(games);
});
});
promise.then((resolveResult) => {
console.log(resolveResult);
return resolveResult;
});
};
readline
、stream
和Promise
吗?在你的情况下,一个简单的fs.readFile
不能胜任吗? - RaphaMexrd.on('error' ...
发现这一点。 - danh