2008-09-17 22 views
3

Bu yüzden meraklı bir problem görüyorum. Bir işlev Bu fonksiyon, kullanıcının hareketiyle açıkça çağrılabilirSetInterval neden rasgele argümanlarla bir işlevi çağırıyor?

// counter wraps around to beginning eventually, omitted for clarity. 
var counter; 
cycleCharts(chartId) { 
    // chartId should be undefined when called from setInterval 
    console.log('chartId: ' + chartId); 
    if(typeof chartId == 'undefined' || chartId < 0) { 
     next = counter++; 
    } 
    else { 
     next = chartId; 
    } 
    // ... do stuff to display the next chart 
} 

, bu durumda chartId bir bağımsız değişken olarak geçirilir ve seçilen grafik gösterilmektedir varsa; yoksa bu durumda tarafından başlatılan bir setInterval tarafından denir, autoplay modunda olabilir şunlardır:

var cycleId = setInterval(cycleCharts, 10000); 

garip şey aslında denir bile chartId argüman olsun cycleCharts() görüyorum olduğunu setInterval'dan! setInterval, cycleCharts işlevine geçmek için hiçbir parametreye sahip değil, bu yüzden , setInterval'dan çağrıldığında neden tanımlanmadığı konusunda çok şaşırdım.

cevap

4

setInterval cycleCharts gerçek zamanlama verileri besleme ise (yani kimse ran gerçek zamanı çalışabilir ve animasyon çoğunlukla pratik, daha az stilted cevabı üretmek için kullanın) (

Eğer

var cycleId = setInterval(function(){ cycleCharts(); }, 10000); 

isteyen Bu davranış standartlaştırılamayabilir, bu yüzden çok fazla güvenmeyin)

+0

Haklısınız, ama bence bunu istiyor: var cycleId = setInterval (function() {cycleCharts()}, 10000); – mislav

+0

Teşekkürler! Bu benim problemimi mükemmel bir şekilde çözer! – Aeon

1

var cycleId = setInterval (cycleCharts, 10000, 4242);

Üçüncü parametreden ve daha sonra - işleve geçirilirler; böylece örneğimde, 4242 olarak chartId olarak gönderirsiniz. Sorduğun sorunun cevabı olmayabilir, ama sorunun senin çözümü olabilir mi? Aldığım değer, yöntemi geçerken/çağırırken yığında bulunan yalanlardan sadece rastgele olduğunu düşünüyorum.

+0

Evet, bunu biliyorum, ama bu IE'de çalışmıyor ve ayrıca herhangi bir ek argümandan geçmiyorum. Yine de teşekkürler! – Aeon

3

Geri aramanın kaç milisaniye geçtiğini bildirir.

İlgili konular