لماذا setInterval استدعاء دالة عشوائية الحجج ؟

StackOverflow https://stackoverflow.com/questions/86269

  •  01-07-2019
  •  | 
  •  

سؤال

لذا أرى مشكلة غريبة.إذا كان لدي وظيفة

// 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
}

هذه الوظيفة يمكن أن يطلق عليه صراحة من قبل المستخدم العمل في هذه الحالة chartId يتم تمريرها في كحجة و اختيار الرسم البياني هو مبين ؛ أو أنها يمكن أن تكون في وضع التشغيل التلقائي ، وفي هذه الحالة يسمى من قبل setInterval وهو تهيئة التالية:

var cycleId = setInterval(cycleCharts, 10000);

الشيء الغريب هو أنني في الواقع رؤية cycleCharts() الحصول على chartId الحجة حتى من setInterval!على setInterval حتى لا يكون أي المعلمات لتمرير على طول cycleCharts وظيفة, لذلك أنا في حيرة لماذا chartId ليس غير معروف عند cycleCharts ويسمى من setInterval.

هل كانت مفيدة؟

المحلول

setInterval هو تغذية cycleCharts التوقيت الفعلي البيانات ( حتى واحد يمكن العمل بها الوقت الفعلي ركض واستخدامها لإنتاج أقل طنان استجابة معظمها عملي في الرسوم المتحركة )

تريد

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

( قد يكون هذا السلوك غير موحدة ، لذلك لا تعتمد عليها بشكل كبير جدا )

نصائح أخرى

فإنه يقول لك كم ميلي ثانية في وقت متأخر من رد تسمى.

فار cycleId = setInterval(cycleCharts, 10000, 4242);

من المعلمة الثالث وما بعده - أنها تحصل على تمريرها إلى وظيفة حتى في بلدي على سبيل المثال يمكنك إرسال 4242 كما chartId.وأنا أعلم أنه قد لا يكون الجواب على السؤال الذي طرحته ، ولكن يمكن حل المشكلة ؟ أعتقد قيمة يحصل هو مجرد عشوائية من كل ما تقع على كومة في وقت تمر/استدعاء الأسلوب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top