为什么我的 javascript 函数总是返回 undefined?

时间:2021-07-12 11:48:36

标签: javascript json function return undefined

我正在尝试从本地 json 文件中读取消息对象。该函数读取成功并且工作正常,但是当我返回对象或对象数组甚至对象键的单个值时,无论我返回什么,我都会得到一个未定义的变量。

function readMessage(room, cb) {
    var filePath = directory + room + ".json";
    //let messageArray;
    fs.access(filePath, fs.F_OK, (err) => {
        if (err) {
            console.log("return false");
            return;
        } else {
            //file exists so retrieve messages
            console.log("Room Exists! Reading messages..")
            const filePath = directory + room + ".json";
            let data = fs.readFileSync(filePath);
            var messData = JSON.parse(data);
            //adding the new data to old and create another object
            //console.log(typeof(messData.table)); 
            return messData.table;
        }
    });
}

我尝试过其他返回方法。就像调用另一个函数,然后通过使它们成为单个对象来返回值。没有任何作用。

let message=readMessage(user.room);
console.log(message);
//OUTPUT
//undefined

输出未定义。 我不能直接使用函数中的值或函数的编写位置,因为我需要获取值并从服务器在我的聊天中显示消息。

JSON 文件采用以下格式:

{
  "table": [
    {
      "id": 1232343440,
      "username": "binik",
      "message": "wsssqq",
      "time": "9:27 AM"
    },
    {
      "id": 1232343440,
      "username": "binik",
      "message": "wsssqq",
      "time": "9:34 AM"
    },
    {
      "id": 123234344,
      "username": "bini",
      "message": "gooooooodddd",
      "time": "9:34 AM"
    }
  ]
}

0 个答案:

没有答案