Javascript setTimeout()给了我一个错误:Timeout{u调用:false}

Javascript setTimeout()给了我一个错误:Timeout{u调用:false},javascript,Javascript,我试着做一个函数,生成一个随机数,然后在3秒后加上5 下面是我试图做的: const add5=(randomNum)=>{ return randomNum+5 } // Function for you to get started with: const generateRandomNumber = () => { const rand = Math.round(Math.random() * 10); // .... console.l

我试着做一个函数,生成一个随机数,然后在3秒后加上5

下面是我试图做的:

const add5=(randomNum)=>{
         return randomNum+5
}
// Function for you to get started with:
const generateRandomNumber = () => { 
    const rand = Math.round(Math.random() * 10);
    // ....
  console.log(rand)
 console.log(setTimeout(add5,3000,rand))
}
generateRandomNumber()
现在,我尝试将结果记录到console.log中,以查看我正在执行的操作。当我运行代码时;我得到的结果如下:

9
Timeout {
  _called: false,
  _idleTimeout: 3000,
  _idlePrev: 
   TimersList {
     _idleNext: [Circular],
     _idlePrev: [Circular],
     _timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
     _unrefed: false,
     msecs: 3000,
     nextTick: false },
  _idleNext: 
   TimersList {
     _idleNext: [Circular],
     _idlePrev: [Circular],
     _timer: Timer { '0': [Function: listOnTimeout], _list: [Circular] },
     _unrefed: false,
     msecs: 3000,
     nextTick: false },
  _idleStart: 141,
  _onTimeout: [Function: add5],
  _timerArgs: [ 9 ],
  _repeat: null,
  _destroyed: false,
  [Symbol(asyncId)]: 7,
  [Symbol(triggerAsyncId)]: 1 }
我可以假设9是随机数,因为每当我重新运行代码时,它总是不断变化
我的问题很简单:“为什么setTimeout()不工作,而它实际上应该工作?”

您正在记录setTimeout函数本身的输出,而(我认为)您想要的是记录add5函数的返回值

const add5 = (randomNum) => {
    return randomNum + 5
}

const generateRandomNumber = () => { 
    const rand = Math.round(Math.random() * 10);
    // ....
    console.log(rand)
    setTimeout(r => console.log(add5(r)), 3000, rand)
}

generateRandomNumber()

您正在记录setTimout函数本身的输出,而(我认为)您想要的是记录add5函数的返回值

const add5 = (randomNum) => {
    return randomNum + 5
}

const generateRandomNumber = () => { 
    const rand = Math.round(Math.random() * 10);
    // ....
    console.log(rand)
    setTimeout(r => console.log(add5(r)), 3000, rand)
}

generateRandomNumber()

但我想保留确切的语法(rand作为setTimeout中的第三个参数)@maii好吧,这没问题;查看编辑。但我想保留确切的语法(rand作为setTimeout中的第三个参数)@maii好吧,这没问题;请参见编辑。