我正在尝试返回setTimeout(),该方法在0.5秒后打印出“ Hello”。它在“ Hello”之前返回一个不需要的1。谁能解决这个问题?
let c = () => setTimeout(() => console.log("hello"), 500)
console.log(c()); //1
//hello
答案 0 :(得分:2)
您得到1是因为setTimeout
返回了它的唯一标识符,JS用来标识超时。
这意味着当您console.log(c())
时,您将获得setTimeout
的返回值(即ID)。
要解决此问题,您只需调用c()
,而无需记录其返回值:
const c = () => setTimeout(() => console.log("hello"), 500)
c(); // hello