זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/es6/lessons/forof
זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/es6/lessons/forof
לגבי פונקציה שהיא איטרטור - איך זה בדיוק עובד מאחורי הקלעים האם כל פעם ה- JS מריץ מתחילת הפונקציה אך זוכר שהוא נמצא באיבר השני ולכן ידלג על ההוראה yield ורק בשני יחזיר את הערך - אך הוא יתחיל תמיד מתחילת הפונקציה
או שהוא זוכר את המיקום שלו בפונקציה ובקריאה הבאה הוא ימשיך משם ?
לא לא - זוכר את המיקום וממשיך בדיוק מאותו המקום. אין ביצוע כפול.
היי ינון ,
תוכל בבקשה להסביר למה עדיף לעשות שימוש בפונקציה הזאת מאשר לרוץ עליה כמערך של סדרת מספרים ?
אתה מתכוון לשאול ״מתי תרצה להשתמש ב Generator״? או שלא הבנתי?
כן , מתי תשתמש בה ? במידה ויש לי 100 מוצרים שממתינים לטעינה מapi היא תתחיל לטעון תוצאות ? הכוונה שהמשתמש לא ימתין לכל התוצאה אלא יתחיל לראות תוצאות במסך ?
לדעתי מה שתיארת הוא לא Use Case ל Generator. במצב של 100 מוצרים אתה רוצה קריאת API אחת שתביא את כל המוצרים. אתה תבחר Generator כשאתה רוצה להסתכל על סידרה של ערכים בהרבה הקשרים, ולא בטוח עדיין מה אתה רוצה לעשות עם המידע.
יש דוגמא פה בקורס לייצוג הקואורדינטות של תחנת החלל הבין לאומית בתור Generator:
https://www.tocode.co.il/bundles/es6/lessons/async-generators
זה מידע שהוא במהותו אינסופי וכשאתה מייצג אותו כ Generator אתה פותח לעצמך את האפשרות להשתמש במידע בכל מיני מקומות בתוכנית בלי שתצטרך לשכפל את הלוגיקה.
עוד דיון על הנושא כתבתי בפוסט כאן (אומנם בשפת פייתון אבל לדעתי מאוד רלוונטי לשאלה שלך):