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

Vanilla JS测验应用:如何实现指定时长等待后执行函数?

解决JS中等待指定时间后执行代码的问题

你写的wait函数没达到预期效果,核心问题是没有返回创建的Promise实例,导致await无法识别这是一个异步操作,自然不会等待。

修正后的代码如下:

const wait = (milliseconds) => {
  // 必须返回Promise,await才能捕获并等待
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, milliseconds);
  });
};

const execute = async () => {
  await wait(5000);
  console.log("跳转到下一题");
};

execute();

也可以简化成更紧凑的写法:

const wait = (milliseconds) => new Promise(resolve => setTimeout(resolve, milliseconds));

原理很简单:await只能等待Promise对象的状态变更,所以wait函数必须返回Promise,当setTimeout到点后触发resolve,await就会结束等待,继续执行后续代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:15:50