📅  最后修改于: 2023-12-03 15:32:21.916000             🧑  作者: Mango
在Javascript中,setTimeout函数可以用来延迟一定时间后执行某段代码。但是,有时我们需要等待某个元素出现或者某个操作完成再执行下一步,这时候如何实现呢?
以下是几种实现方式:
可以使用setInterval函数多次检查元素是否存在或者某个操作是否完成,当满足条件时执行下一步操作。
function waitForElementToDisplay(selector, time) {
var interval = setInterval(function () {
if (document.querySelector(selector)) {
clearInterval(interval);
console.log('Element found!');
}
}, time);
}
waitForElementToDisplay('.myElement', 1000);
利用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);
}));
可以将整个函数变为异步函数,并使用await关键字等待某个操作完成后再执行下一步操作。
async function doSomething() {
await new Promise(resolve => setTimeout(resolve, 5000));
console.log('Operation finished!');
}
以上是其中几种实现方式,它们的适用场景不同,开发者可以根据实际情况选择适合自己的方式。