我的函数甚至不认为确实应该返回数组

时间:2019-02-01 08:03:41

标签: javascript

所以我有一个打开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));返回一个数组,但是返回未定义

1 个答案:

答案 0 :(得分:-1)

在fs.readFile之前编写一个返回状态,如下所示。

return fs.readFile("./SETTINGS/games.txt", "utf8", (error, data) => {
相关问题