0

我有一个脚本,它使用来自数据层的数据。如果我过早触发脚本,它将不起作用,因为数据(我在脚本中引用)尚未定义。因此我延迟了脚本(1500 毫秒)。问题是脚本应该尽早运行。有时数据(来自数据层)更快可用,有时更晚......

因此,与其将我的脚本总是延迟 1500 毫秒,我想在 500 毫秒后运行脚本,如果由于数据/属性尚未定义/可用而无法运行,我想再过 500 毫秒后再次运行它...... 。 ETC。

我该怎么做呢?

谢谢!!

4

1 回答 1

0
// 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 */ });
于 2016-03-06T13:18:20.357 回答