You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确调用setTimeout实现打印A后3秒输出B和C

问题根因

  • 语法错误:你粘贴的代码末尾多了一个多余的闭合大括号},会直接触发JS语法报错,导致代码完全无法执行,这是你看不到任何输出的首要原因。
  • setTimeout传参错误:setTimeout(main(), 3000)的写法是立即执行main函数,把函数返回值传给setTimeout,而不是把main本身作为延迟执行的函数传入,正确的传参应该是不带括号的函数引用setTimeout(main, 3000)。

实现方案

方案1:回调写法(无额外依赖)

function main(){
  console.log('A');
  // 间隔3秒后打印B和C
  setTimeout(() => {
    console.log('B');
    console.log('C');
  }, 3000)
}

// 直接调用即可触发逻辑
main();

方案2:async/await写法(复用预留的sleep函数)

// 实现sleep延迟函数
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function main(){
  console.log('A');
  // 等待3秒再执行后续代码
  await sleep(3000);
  console.log('B');
  console.log('C');
}

main();

如果你的需求是先延迟3秒再打印A,之后立刻打印B和C,才需要把main调用套进setTimeout:

setTimeout(main, 3000);

内容的提问来源于stack exchange,提问作者Sucheta Shrivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:51:03