fs.readFile(answer, 'utf8', function (err, data) {
var dataArray = data.split(/\r?\n/).filter(entry => entry.trim() != '');
console.log(dataArray); // **Line 1**
});
console.log(dataArray); // **Line2**
}
首先执行第2行代码,然后执行第1行
答案 0 :(得分:1)
您可以使用readFileSync来实现同步。
var data = fs.readFileSync(answer, 'utf8');
var dataArray = data.split(/\r?\n/).filter(entry => entry.trim() != '');
console.log(dataArray);
答案 1 :(得分:0)
尝试以下操作:
function readFilePromisified(file) {
return new Promise( (resolve, reject) => {
fs.readFile(file, 'utf8', function (err, data) {
if (err) {
reject(err);
}
const dataArray = data.split(/\r?\n/).filter(entry => entry.trim() != '');
console.log(dataArray); // **Line 1**
resolve(dataArray);
});
});
}
然后您可以使用async/await
:
( async () => {
const dataArray = await readFilePromisified(file); // this will print **Line 1** before it returns
console.log(dataArray); **Line 2**
})();