קורס Front End למתכנתים שיעור עבודה עם שעונים


זהו נושא דיון מלווה לערך המקורי שב־https://www.tocode.co.il/bundles/frontend/lessons/timers

היי,
הייתי שמח להבין מדוע הפונקציה 4:56 , מריצה את כל המחרוזות במערך במקום להריץ את שתי איברי המערך הראשונים דוגמה: “hi” “bye” בלבד . כי אם אני חושב על זה הרי הפוקנציה רצה פעם אחת כחלק מטריגר לאירוע של הכפתור ופעם שניה כחלק מהsetTime

הי @avraam_b,

אתה מדבר על הפונקציה tick נכון?

אז קודם כל הפונקציה לא נקראת כתוצאה מלחיצה על הכפתור. הקוד שמטפל בלחיצה על כפתור נראה כך:

...addEventListener('click', function() {
  setTimeout(tick, 1000);
});

כל מה שקורה בעקבות לחיצה על הכפתור הוא לפתוח שעון ל-שניה. בסוף השניה הזאת תופעל הפונקציה tick.

אותו דבר אנחנו רואים בקוד הפונקציה עצמה:

function tick() {
  // ...
  setTimeout(tick, 1000);
}

היא עושה כל מיני דברים ובסיום מפעילה שעון חדש שבעוד שניה יפעיל את הפונקציה tick.

מבנה זה יצר סוג-של לולאה אינסופית: כל פעם שהפונקציה נקראת היא פותחת שעון חדש שיפעיל אותה שוב בעוד שניה וחוזר חלילה.

אוקי הבנתי.

תודה רבה, על ההסבר :slight_smile:

לייק 1