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

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

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

מתוזמן נעוץ נעול הועבר תכנות
10 פוסטים 3 כותבים 67 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

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

  • התחברו או הירשמו כדי לחפש.