当前位置:首页 > JavaScript

js实现等待

2026-04-04 00:56:27JavaScript

实现等待的几种方法

使用 setTimeoutsetInterval 进行延迟执行

setTimeout(() => {
  console.log('延迟1秒后执行');
}, 1000);

利用 Promiseasync/await 实现异步等待

function wait(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function delayedAction() {
  await wait(2000);
  console.log('等待2秒后执行');
}

使用 requestAnimationFrame 实现动画等待

js实现等待

function waitForAnimation(callback) {
  requestAnimationFrame(() => {
    requestAnimationFrame(callback);
  });
}

等待条件满足的实现

轮询检查条件

function waitUntil(condition, interval = 100) {
  return new Promise(resolve => {
    const check = () => {
      if (condition()) {
        resolve();
      } else {
        setTimeout(check, interval);
      }
    };
    check();
  });
}

使用 MutationObserver 等待DOM变化

js实现等待

function waitForElement(selector) {
  return new Promise(resolve => {
    if (document.querySelector(selector)) {
      return resolve();
    }

    const observer = new MutationObserver(() => {
      if (document.querySelector(selector)) {
        observer.disconnect();
        resolve();
      }
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
  });
}

高级等待模式

实现可取消的等待

function cancellableWait(ms) {
  let timeoutId;
  const promise = new Promise(resolve => {
    timeoutId = setTimeout(resolve, ms);
  });

  return {
    promise,
    cancel: () => clearTimeout(timeoutId)
  };
}

等待多个异步操作完成

async function waitForAll(promises) {
  await Promise.all(promises);
  console.log('所有异步操作已完成');
}

标签: js
分享给朋友:

相关文章

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js实现隐藏div

js实现隐藏div

隐藏div的几种方法 使用JavaScript隐藏div元素可以通过多种方式实现,以下是几种常见的方法: 方法一:修改style.display属性 将div的display属性设置为"none"…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…