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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. Vue | async data()

Vue | async data()

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

    התחלתי אתמול ללמוד vue, והסתבכתי עכשיו.
    אני מנסה לקבל מידע מ-API דרך פונקציית data, ולא מצליח.
    אני לוקח את המידע עם fetch, ומקבל Promise.
    אם אני עושה ככה:

    const data = fetch(config.apiEndpoint + 'book/' + this.$route.params.name).then(res => res.json())
    return {
      book: data.book
    }
    

    data הוא undefined, כי המידע עוד לא התקבל.
    אם אני עושה את זה עם async / await, הפונקציה מחזירה Promise, וvue צריך שהפונקציה תחזיר object..
    מה עושים?

    יחי אדוננו מורנו ורבינו מלך המשיח לעולם ועד!

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

      ב"ה הסתדרתי לפי הדוגמא כאן.

      יחי אדוננו מורנו ורבינו מלך המשיח לעולם ועד!

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

        @men770 לא מסכים עם השאלה, עם await צריך לעבוד מעולה ככה:

        const data = await fetch(config.apiEndpoint + 'book/' + this.$route.params.name).then(res => res.json())
        return {
          book: data.book
        }
        

        או:

        var root =  {
          book: data.book
        }
        
        fetch(config.apiEndpoint + 'book/' + this.$route.params.name)
                .then(res => res.json())
                .then(x => root.book = x.book);
        
        return root;
        

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

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

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

          @dovid אמר בVue | async data():

          @men770 לא מסכים עם השאלה, עם await צריך לעבוד מעולה ככה:

          const data = await fetch(config.apiEndpoint + 'book/' + this.$route.params.name).then(res => res.json())
          return {
            book: data.book
          }
          

          כתבתי שזה לא עובד, כי בדקתי וזה לא עבד..
          כשאני עושה את הפונקציה של data בתור async, ‏vue מחזיר שגיאה, כי הפונקציה data צריכה להחזיר object, והיא מחזירה Promise.

          יחי אדוננו מורנו ורבינו מלך המשיח לעולם ועד!

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

            @men770 אז הבעיה היא חתימת הפונקציה, כלומר קוד שבכלל לא הבאת פה, גם אם יש לזה פתרון אני לא יודע לומר אותו.

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

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

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

              @Men770

              תגדיר בdata משתנה עם ערך ריק
              ואחרי זה תכניס את הפונקציה לתוך mounted
              לדוגמא:

              mounted() {
              fetch(config.apiEndpoint + 'book/' + this.$route.params.name).then(res => res.json())
              }
              

              ואחרי זה אתה מוסיף שורה שמכניסה את ה Json לתוך המשתנה שהגדרת

              מקווה שהסברתי מספיק טוב!

              מערכת שעות עבודה, https://timess.co.il/
              בלוג הקוד שלי: https://yossef7525.github.io/

              katzK תגובה 1 תגובה אחרונה
              3
              • katzK מנותק
                katzK מנותק
                katz
                השיב לkatz ב נערך לאחרונה על ידי katz
                #7

                @katz אמר בVue | async data():

                @Men770

                תגדיר בdata משתנה עם ערך ריק
                ואחרי זה תכניס את הפונקציה לתוך mounted
                לדוגמא:

                mounted() {
                fetch(config.apiEndpoint + 'book/' + this.$route.params.name).then(res => res.json())
                }
                

                ואחרי זה אתה מוסיף שורה שמכניסה את ה Json לתוך המשתנה שהגדרת

                מקווה שהסברתי מספיק טוב!

                אחרי זה ראיתי שכבר הסתדרת עם הרעיון הזה, סליחה על התגובה המאוחרת

                מערכת שעות עבודה, https://timess.co.il/
                בלוג הקוד שלי: https://yossef7525.github.io/

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

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

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

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