我有一个脚本,它使用来自数据层的数据。如果我过早触发脚本,它将不起作用,因为数据(我在脚本中引用)尚未定义。因此我延迟了脚本(1500 毫秒)。问题是脚本应该尽早运行。有时数据(来自数据层)更快可用,有时更晚......
因此,与其将我的脚本总是延迟 1500 毫秒,我想在 500 毫秒后运行脚本,如果由于数据/属性尚未定义/可用而无法运行,我想再过 500 毫秒后再次运行它...... 。 ETC。
我该怎么做呢?
谢谢!!
我有一个脚本,它使用来自数据层的数据。如果我过早触发脚本,它将不起作用,因为数据(我在脚本中引用)尚未定义。因此我延迟了脚本(1500 毫秒)。问题是脚本应该尽早运行。有时数据(来自数据层)更快可用,有时更晚......
因此,与其将我的脚本总是延迟 1500 毫秒,我想在 500 毫秒后运行脚本,如果由于数据/属性尚未定义/可用而无法运行,我想再过 500 毫秒后再次运行它...... 。 ETC。
我该怎么做呢?
谢谢!!
// set function to run every 500 ms, and store reference
var interval = setInterval(function(){
// if the data is available, clear the interval, and process data
if(typeof data !== 'undefined') {
clearInterval(interval)
console.log('data is ready');
// ready to start processing
}
}, 500);
然而,这种方法很少是最好的方法。根据您的数据如何可用,最好使用回调/承诺或事件侦听器。
例如,使用 jQuery 获取一些数据,然后在回调中做出反应......
$.get('/some/data/uri', function(data){ /* do something with data */ });