Javascript setTimeout()给了我一个错误:Timeout{u调用:false}
我试着做一个函数,生成一个随机数,然后在3秒后加上5 下面是我试图做的: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
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好吧,这没问题;请参见编辑。