זהו נושא דיון מלווה לערך המקורי שב־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.
מבנה זה יצר סוג-של לולאה אינסופית: כל פעם שהפונקציה נקראת היא פותחת שעון חדש שיפעיל אותה שוב בעוד שניה וחוזר חלילה.
אוקי הבנתי.
תודה רבה, על ההסבר
לייק 1