【发布时间】:2021-06-23 10:49:29
【问题描述】:
我知道could 可以通过多种方式实现。而且我也明白 settimeout 是异步的,如果没有承诺,就不能轻易返回“true”。
但我正在努力从这个函数中返回 true,并承诺。
从这个 sn-p 代码中,我可以返回 true 的最佳方式是什么? (如果元素存在,我想返回 true)。
我需要能够专门返回true。
或者还有其他方法可以实现这一点。等待页面上存在 DOM 元素并在它存在时返回 true?
function waitForElement(className, callBack){
return new Promise(function(resolve) {
window.setTimeout(function(resolve){
var element = document.querySelector(className);
if(element) {
callBack(className, element);
console.log("Element exists")
} else {
waitForElement(className, callBack);
console.log("Wait...")
}
},1000)
});
};
waitForElement(".helping-hand-sliding-data h2",function(){
return true;
});
【问题讨论】:
标签: javascript asynchronous dom callback settimeout