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

求助:如何实现4个函数按4秒间隔依次执行?当前代码异常

问题分析与解决

问题根源

你这段代码的问题在于:三个sleep(4000)是同时启动定时器的。当StepOne执行完后,三个4秒的等待会同步开始计时,4秒后三个then回调会几乎同时触发,所以StepTwo、StepThree、StepFour会无间隔地连续输出,只有StepOne和它们之间有4秒间隔。

修复方案

方案1:Promise链式调用

把后续的sleep调用嵌套在前一个then的回调里,让它们按顺序排队执行:

StepOne();
sleep(4000)
  .then(() => StepTwo())
  .then(() => sleep(4000))
  .then(() => StepThree())
  .then(() => sleep(4000))
  .then(() => StepFour());

这样每一个sleep都会在前一个步骤完全结束后才开始计时,确保每两个函数之间间隔4秒。

方案2:async/await(更易读)

用async/await语法让异步代码看起来像同步逻辑,更直观:

async function runAllSteps() {
  StepOne();
  await sleep(4000);
  StepTwo();
  await sleep(4000);
  StepThree();
  await sleep(4000);
  StepFour();
}

runAllSteps();

这种写法会严格按照顺序执行:执行StepOne → 等4秒 → 执行StepTwo → 等4秒 → 执行StepThree → 等4秒 → 执行StepFour,完美符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:39:56