简单的代码,但获得“回调不是函数”

问题描述 投票:-1回答:1

在我的帖子被关闭之前,因为有很多类似的帖子,我要说我环顾四周,但仍然找不到解决方案,因此,我想针对我的具体情况寻求帮助。

function serverOptionsIDCheck(ID, JSONfile, callback){
    fs.readFile(JSONfile, 'utf8', (err, readFile)=>{
            if(err) throw err;
            let JSONObject = new Map((JSON.parse(readFile)));
            let serverOptions = JSONObject.get(ID);
            callback(serverOptions);
    });

这是功能。我正在尝试将serverOptions检索到另一个回调。它在这里被调用:

let content = JSON.stringify([...GuildOptionsMap]);
        WriteJSON('./serverOptions.json', content, ()=>{
        serverOptionsIDCheck(message.guild.id,"./serverOptions.json", function(information){
            serverOptions = information; //serverOptions is a variable created a little bit above ^
        });

    });

我得到的是:TypeError:回调不是函数,引用此行代码:

callback(serverOptions);

我非常感谢我能获得的所有帮助,如果这是一个荒谬的问题,我们深表歉意。

javascript asynchronous callback
1个回答
0
投票

传入的回调应具有适当的范围。

let content = JSON.stringify([...GuildOptionsMap]);
WriteJSON('./serverOptions.json', content, () => {
  serverOptionsIDCheck(message.guild.id, "./serverOptions.json",
    //make this callback as an arrow function.
    (information) => {
      serverOptions = information; //serverOptions is a variable created a little bit above ^
    });

});
© www.soinside.com 2019 - 2024. All rights reserved.