דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אסינכרוני ב JS

אסינכרוני ב JS

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 3 כותבים 441 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מנצפךמ מנותק
    מנצפךמ מנותק
    מנצפך
    כתב ב נערך לאחרונה על ידי מנצפך
    #1

    הקוד הזה:

    var i=0;
    for(y=0;y<10000000000;y++){
    i++;
    }
    console.log(i);
    

    לא יכתוב בקוננסול את i לפני הלולאה.
    אפילו שJS הוא אסינכרוני.
    וזה למה?
    אני מבין שכל האסינכרוניות של JS זה ב I/O. נכון?

    תגובה 1 תגובה אחרונה
    0
    • י מנותק
      י מנותק
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #2
      setTimeout(()=>{}, 10000);
      console.log("I")
      

      זה יודפס לפני ההשהיה למרות שזה לא I/O.
      הסיבה היא שהקומפיילר יוצא לחופשה בזמן ההשהיה, כל פעולה שהוא לא אמור להמשיך לעשות חישובים ולקמפל, הוא ממשיך לשורה הבאה.
      בדוגמא שלך הוא ממשיך לעבוד על הלולאה לכן הוא לא ממשיך לפקודת ההדפסה.

      תגובה 1 תגובה אחרונה
      1
      • dovidD מחובר
        dovidD מחובר
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

        @יוסף-בן-שמעון הראיה שלך לא נכונה, setTimout זה I\O - לפחות באופן מדומה.
        וההסבר שנתת נכון אבל זה בעצם בדיוק מה ש@מנצפך שאל: האם הוא יכול להיות בטוח בסדר הפעולות כל עוד זה לא פונקציות IO, והתשובה היא חיובית - בדיוק בגלל ההסבר שלך.
        כיון ששפת JS לא כוללת רשמית שום פונקציית IO באופן מובנה (כל הפונקציות הם מהמארח כמו הדפדפן) אז נכון לומר שJS היא סינכרונית כל עוד לא מדובר בפונקציה חיצונית, ואם זו חיצונית אמור להיות תלוי אם זה IO.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        מנצפךמ תגובה 1 תגובה אחרונה
        3
        • מנצפךמ מנותק
          מנצפךמ מנותק
          מנצפך
          השיב לdovid ב נערך לאחרונה על ידי
          #4

          @dovid אמר באסינכרוני ב JS:

          אז נכון לומר שJS היא סינכרונית כל עוד לא מדובר בפונקציה חיצונית, ואם זו חיצונית אמור להיות תלוי אם זה I

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

          dovidD תגובה 1 תגובה אחרונה
          0
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            השיב למנצפך ב נערך לאחרונה על ידי dovid
            #5

            @מנצפך יש המון פונקציות חיצוניות שהם סינכרוניים.
            למשל document.getElementById ועוד רבים.
            ניתן לומר שהכל סינכרוני חוץ ממה שכתוב שלא.
            אגב, console.log זה גם לא חלק מהשפה JS...

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            מנצפךמ תגובה 1 תגובה אחרונה
            0
            • מנצפךמ מנותק
              מנצפךמ מנותק
              מנצפך
              השיב לdovid ב נערך לאחרונה על ידי
              #6

              @dovid
              אני טענתי שכל הפונקיצות החיצוניות הם אסינכרוניות. ואתה אומר שיש פוקנציות חיצוניות אסינכרוניות?

              ובנוסף, דווקא אני חושב ש- document.getElementById הוא סינכרוני (כלומר תוקע את התהליך). אני טועה?

              ולמה אתה חושב ש Console.log הוא לא חלק מהשפה?

              dovidD 2 תגובות תגובה אחרונה
              0
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                השיב למנצפך ב נערך לאחרונה על ידי
                #7

                @מנצפך טעיתי, כוונתי סינכרוניות, ותיקנתי.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • dovidD מחובר
                  dovidD מחובר
                  dovid ניהול
                  השיב למנצפך ב נערך לאחרונה על ידי
                  #8

                  @מנצפך אמר באסינכרוני ב JS:

                  ובנוסף, דווקא אני חושב ש- document.getElementById הוא סינכרוני (כלומר תוקע את התהליך). אני טועה?

                  בדיוק. וזה חיצוני, כלומר לא חלק משפת JS.

                  ולמה אתה חושב ש Console.log הוא לא חלק מהשפה?

                  אדרבא, חפש את התיעוד שלו... זה לא חלק מJS אלא חלק מWeb Api המשותף לדפדפנים. וגם לנוד יש, ואולי לכל סביבה שמארחת JS, אבל בעצם זה פונקציה חיצונית.

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  תגובה 1 תגובה אחרונה
                  2

                  בא תתחבר לדף היומי!
                  • התחברות

                  • אין לך חשבון עדיין? הרשמה

                  • התחברו או הירשמו כדי לחפש.
                  • פוסט ראשון
                    פוסט אחרון
                  0
                  • דף הבית
                  • קטגוריות
                  • פוסטים אחרונים
                  • משתמשים
                  • חיפוש
                  • חוקי הפורום