为什么我的功能没有被认可?JavaScript

为什么我的功能没有被认可?JavaScript,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,好的,我已经大大减少了代码,现在有点不同了,但它做的事情是一样的 game-socket.js action-timer.js combat.js 错误: action-timer.js:5 combat(io, socket, app); ^ TypeError: combat is not a function at Timeout.app.online.actionTime.setTimeout [as _onTimeout] (C:\Users\w

好的,我已经大大减少了代码,现在有点不同了,但它做的事情是一样的

game-socket.js

action-timer.js

combat.js

错误:

action-timer.js:5
      combat(io, socket, app);
      ^

TypeError: combat is not a function
    at Timeout.app.online.actionTime.setTimeout [as _onTimeout] (C:\Users\wjpop\Desktop\kog\funcs\action-timer.js:5:7)
    at listOnTimeout (timers.js:327:15)
    at processTimers (timers.js:271:5)

我明白了,奇怪的是我不得不这样做,因为通常情况下不需要这样做,但action-timer.js应该是这样的:

module.exports = (type, io, socket, app) => {
  const combat = require("./combat/combat");
  if (type == "combat") {
    app.online.actionTime = setTimeout(() => {
      combat(io, socket, app);
    }, 1000);
  } else if (type == "tradeskill") {
  }
};

你能补充更多关于错误的细节吗?你写了“它会说中间函数,不是函数”和“最后一个文件(战斗),这是错误发生的地方。”。你能不能指定确切的错误信息以及错误发生在js中的确切位置?“它会说“中间”函数,不是函数”什么是“中间”函数?你能提供更多关于错误是什么以及在哪里发生的详细信息吗?如果可能,请创建一个小的可执行示例来演示错误。在仍然出现错误的情况下,尽可能多地删除代码。我更新了完整错误,并根据它们的文件名对代码进行了标记。在那里,我尽可能减少了代码,产生了相同的错误。
const startAction = require("../action-timer");
module.exports = (io, socket, app) => {
  //Run another combat
  console.log("COMBAT");
  startAction("combat", io, socket, app);
};
action-timer.js:5
      combat(io, socket, app);
      ^

TypeError: combat is not a function
    at Timeout.app.online.actionTime.setTimeout [as _onTimeout] (C:\Users\wjpop\Desktop\kog\funcs\action-timer.js:5:7)
    at listOnTimeout (timers.js:327:15)
    at processTimers (timers.js:271:5)
module.exports = (type, io, socket, app) => {
  const combat = require("./combat/combat");
  if (type == "combat") {
    app.online.actionTime = setTimeout(() => {
      combat(io, socket, app);
    }, 1000);
  } else if (type == "tradeskill") {
  }
};