如何使用setinterval检查方法是否可用



页面加载一段时间后,第三方js库正在加载。基本上取决于它,我需要调用它的一个方法。方法是使用setIntervalsetTimeout检查第三方方法,如果它是可用的方法(ag),然后执行。间隔将每X秒运行10次,但如果方法(ag)可用,则停止间隔并执行自定义函数。

$(document).ready( function () {
setInterval(function () {
if (typeof ag != 'undefined') { 
// ag is available and execute your code here. 
clearInterval();
}
}, 10);
}

有更好的解决方案吗?

编辑1:

使用上面的链接这个答案-

function whenAvailable(name, callback) {
var interval = 10; // ms
window.setTimeout(function() {
if (typeof name != 'undefined') {
callback();
} else {
whenAvailable(name, callback);
}
}, interval);
}
whenAvailable("sp", function(t) {
// do something
});

但是如何设置执行max 10次的限制?

下面的代码为我工作。当发现ag或重复10次后清除间隔。

var x = 0;
var intervalID = window.setInterval(function() {
if (typeof ag != "undefined") {
console.log('ag loaded!);
window.clearInterval(intervalID);
// do stuff
}
if (++x === 10) {
console.log('complete 10 times');
window.clearInterval(intervalID);
}
}, 1000);

相关内容

最新更新