javascript - 为什么 push() 函数不能与 Nodejs 中的 fs 一起使用
问题描述
数据.txt:
xxxx1;yyyy1
xxxx2;yyyy2
xxxx3;yyyy3
xxxx4;yyyy4
xxxx5;yyyy5
这是我的 data.txt 的样子以及运行以下函数时的样子:
var fs = require('fs');
var x = [];
var y = [];
function pushdata(){
fs.readFile('data.txt', (err, data) => {
data = data.toString().split("\n");
for (let i = 0; i < data.length; i++) {
x.push(data[i].split(';')[0]);
y.push(data[i].split(';')[1]);
}
});
}
pushdata()
console.log(x, y);
输出是:
[] []
代替:
[ 'xxxx1', 'xxxx2', 'xxxx3', 'xxxx4', 'xxxx5' ] [ 'yyyy1', 'yyyy2', 'yyyy3', 'yyyy4', 'yyyy5' ]
我究竟做错了什么?
解决方案
你必须等待完成。在将任何内容推入阵列之前记录阵列
var fs = require('fs');
var x = [];
var y = [];
function pushdata(done){
fs.readFile('data.txt', (err, data) => {
data = data.toString().split("\n");
for (let i = 0; i < data.length; i++) {
x.push(data[i].split(';')[0]);
y.push(data[i].split(';')[1]);
}
done()
});
}
pushdata(function () {
console.log(x, y);
})
推荐阅读
- python - 在文件中查找字符串 A 并使用字符串 A 打印行以及下一行,直到匹配字符串 B
- ssl - Chef apt_repository 开始因 SSL 验证错误而失败
- c# - 如何在 Oracle 身份验证中使用 MS Access 连接字符串
- reactjs - 除非我在 React 中刷新页面,否则状态不会改变
- html - 在自定义滑块 Jquery 上隐藏/显示下一个和上一个按钮
- python - 如何在函数中检测变量赋值?
- typescript - 如果仅定义了字符串,则 Nest.js 验证字符串数组
- reactjs - 为什么 Material-UI 日期与占位符重叠值并抱怨受控输入?
- r - 如何使用 errbar 从数据集中绘制多列
- python - 如何使用 isinstance() 根据对象的类型将列表分成两个列表?