📜  js settimeout 等待元素 - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:21.916000             🧑  作者: Mango

Javascript中的setTimeout与等待元素

在Javascript中,setTimeout函数可以用来延迟一定时间后执行某段代码。但是,有时我们需要等待某个元素出现或者某个操作完成再执行下一步,这时候如何实现呢?

以下是几种实现方式:

1. setInterval轮询

可以使用setInterval函数多次检查元素是否存在或者某个操作是否完成,当满足条件时执行下一步操作。

function waitForElementToDisplay(selector, time) {
  var interval = setInterval(function () {
    if (document.querySelector(selector)) {
      clearInterval(interval);
      console.log('Element found!');
    }
  }, time);
}

waitForElementToDisplay('.myElement', 1000);
2. Promises

利用Promise对象的then方法来等待某个操作的完成。

function waitForPromise(promise) {
  return promise.then(function(result) {
    console.log('Promise resolved: ' + result);
  });
}

waitForPromise(new Promise(function(resolve, reject) {
  setTimeout(() => resolve('Operation finished!'), 5000);
}));
3. async/await

可以将整个函数变为异步函数,并使用await关键字等待某个操作完成后再执行下一步操作。

async function doSomething() {
  await new Promise(resolve => setTimeout(resolve, 5000));
  console.log('Operation finished!');
}

以上是其中几种实现方式,它们的适用场景不同,开发者可以根据实际情况选择适合自己的方式。