【问题标题】:returning setTimeout returns 1 for some reason返回 setTimeout 出于某种原因返回 1
【发布时间】:2019-08-14 00:50:29
【问题描述】:

我正在尝试返回 setTimeout(),它会在 0.5 秒后打印出“Hello”。它在“Hello”之前返回一个不需要的 1。有人能解决这个问题吗?

let c = () => setTimeout(() => console.log("hello"), 500)
console.log(c()); //1
                  //hello

【问题讨论】:

    标签: javascript ecmascript-6 arrow-functions


    【解决方案1】:

    你得到 1 是因为 setTimeout 返回它的唯一标识符,JS 用它来识别超时。

    这意味着当您 console.log(c()) 时,您将获得 setTimeout 的返回值,这是它的 id。

    要解决此问题,您只需调用 c() 而不记录其返回值:

    const c = () => setTimeout(() => console.log("hello"), 500)
    c(); // hello

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 2021-07-06
      • 2018-01-28
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 2012-01-24
      • 2013-08-14
      相关资源
      最近更新 更多