【问题标题】:setTimeout executes immediately instead of time passed in the function call [duplicate]setTimeout 立即执行,而不是函数调用中传递的时间[重复]
【发布时间】:2021-04-05 09:00:19
【问题描述】:

我有这段代码来测试 setTimeout 函数。执行代码后立即记录 console.log。知道为什么 5 秒后不调用此函数吗?这段代码有什么问题?

function formatName(fname,lname){
  let fullName = fname+lname;
  console.log(fullName);
 }
setTimeout(formatName('Jon','Harris'),5000);

EDIT:
I didn't know about the way I need to call setTimeout.

【问题讨论】:

  • 搜索 "settimeout immediate" 时没有任何结果解决了您的问题?

标签: javascript timeout settimeout


【解决方案1】:

setTimeout() 的第一个参数是函数,但在您的代码中,您正在执行该函数。使用箭头函数将其作为函数。

function formatName(fname,lname){
  let fullName = fname+lname;
  console.log(fullName);
 }
setTimeout(() => formatName('Jon','Harris'),5000);

【讨论】:

【解决方案2】:

您可以按以下格式传递参数:

setTimeout(formatName, 5000, fname, lname);

function formatName(fname, lname){
  let fullName = fname + ' ' + lname;
  console.log(fullName);
}
 
setTimeout(formatName, 5000, 'Jon', 'Harris');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多