所以我有一个打开txt文件,提取一些行并返回数组的函数。
问题是,不是。
我console.log在返回结果前的最后一行打印了一个数组,所以我很困惑。
尝试console.loging一切,但由于某种原因,它将始终返回未定义状态
function Collect_Games(Amount){
let Msg = "",
userkeys = [];
fs.readFile("./SETTINGS/games.txt", "utf8", (error, data) => {
if(error) {
return;
} else {
let keys = data.split("\n");
if(keys.length < Amount) {
dont = false;
Msg = "I don't have enough keys for you, please try again later..";
} else {
userkeys = keys.splice(0, Amount);
/*
for(var i=0 ; i < userkeys.length ; i++){
Msg+= userkeys[i]+"\r\n";
}*/
fs.writeFile("./SETTINGS/games.txt", keys.join("\n"), error => {
if(error) {
}
console.log(userkeys); // this actually prints an array..
return userkeys;
});
}
}
});
}
预期如下:console.log(Collect_Games(3));
返回一个数组,但是返回未定义
答案 0 :(得分:-1)
在fs.readFile之前编写一个返回状态,如下所示。
return fs.readFile("./SETTINGS/games.txt", "utf8", (error, data) => {