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

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

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

קבלת ערכים מפרומיז שמתקבל בשימוש בawait

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

    אני עושה פונקציה כזו,

     async function f() {
     
     			let response = await fetch('get_aray.php');
     
     			//console.log(response.json())
     
     			return response.json();
     
     		}
    

    ומקבל חזרה פרומייז

    0c2fa6ad-dd5c-401d-af5c-2de3c4c3ede9-image.png

    איך אני ניגש לפרומיז לקבל את הערך?
    תודה

    תגובה 1 תגובה אחרונה
    0
    • yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי yossiz
      #2

      כמו כל פרומייז. או שאתה מצמיד פונקציה ל-then שלו. או שאתה משתמש ב-await.

      //אופציה 1
      f().then(json=>console.log);
      //אופציה 2
      console.log(await f());
      

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

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

         for (i = 0; i < Jobs.length; i++) { 
         
        ....     
        
        }
        

        השגיאה היא
        0b2b8d8c-8245-4534-8ea0-f40655ba0925-image.png

        תגובה 1 תגובה אחרונה
        0
        • chagoldC מנותק
          chagoldC מנותק
          chagold
          כתב ב נערך לאחרונה על ידי chagold
          #4

          עשיתי ככה:

          function aaaa(Jobs) {
               for (i = 0; i < Jobs.length; i++) { 
          
           ....     
          
           	}
           };
          

          ועזר.
          זה מה שאמור להיות רשמי?

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

            @chagold אם מישהו יידע לעזור לך הוא ממש נביא.

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

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

            chagoldC תגובה 1 תגובה אחרונה
            2
            • chagoldC מנותק
              chagoldC מנותק
              chagold
              השיב לdovid ב נערך לאחרונה על ידי chagold
              #6

              @dovid זה הפונקציה המלאה.
              כדי שהjobs יגיע לשלב של הfor כשהוא עם ערך אני חייב להכניס אותו לפונקציה, או שיש אפשרות אחרת?
              תודה.

               async function insert_jobs() {
                        var Jobs = await f();
                        var JobsARR =[];
                        
                         function aaaa(Jobs) {
                           for (i = 0; i < Jobs.length; i++) { 
                               obj = {'value' : Jobs[i]['id']};
                               JobsARR.push(obj);
                        }
                 };
               
                 return JobsARR;
                 
              }
              
              yossizY dovidD 2 תגובות תגובה אחרונה
              0
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לchagold ב נערך לאחרונה על ידי
                #7

                @chagold

                איפה אתה לפונקציה aaaa?

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

                  @chagold אין סיבה שתצטרך פונקציה. וכמו ש@yossiz שואל הקוד שלך ודאי לא אמור לעבוד.

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

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

                  תגובה 1 תגובה אחרונה
                  1
                  • chagoldC מנותק
                    chagoldC מנותק
                    chagold
                    כתב ב נערך לאחרונה על ידי
                    #9

                    צודקים. אני רואה שהיתה לי טעות צדדית שגרמה לי לחשוב שזה עבד.
                    למעשה, בלי הפונקציה, איך אני מונע את השגיאה של הlength בfor

                    כשהפונקציה היא ככה:

                    async function insert_jobs() {
                          var Jobs = await f();
                          var JobsARR =[];
                              
                          for (i = 0; i < Jobs.length; i++) { 
                            obj = {'value' : Jobs[i]['id']};
                            JobsARR.push(obj);  
                          };
                     
                    return JobsARR;   
                    }
                    
                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מחובר
                      dovidD מחובר
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #10

                      כנראה הf לא מכיל מערך.
                      תדפיס אותו לקונסול ותראה מה יוצא.

                      נ.ב. בשביל מה שאתה עושה אפשר לעשות בלי לולאה באופן הבא:

                      var JobsARR = Jobs.Map(function(x) { return {'value' : x['id']}; });
                      

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

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

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

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

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

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

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