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

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

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

JS תגובה אסינכרונית

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 5 כותבים 452 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yyyY מנותק
    yyyY מנותק
    yyy
    כתב ב נערך לאחרונה על ידי yyy
    #1

    מה הדרך העדכנית ביותר והנוחה ביותר (ביחד או לחוד),
    לכתוב פונקציה שמחזירה מידע החוזר לאחר זמן לא ידוע (נניח תגובת שרת)? סביבת JS.
    תודה וקיץ בריא

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

      תשובה בודדת - Promise (זה מובנה בשפה, להמשך עיון), ניתן באמצעות callback (היינו פונקציה שתטפל במידע) שמעבירים לthen, וניתן באמצעות הסינטקס של async\await (שזה לא שימושי בכל המקרים, אבל בהחלט נוח)

      אתה יכול לטפל בכמה תגובות באמצעות Observables מספריית RxJS

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

        מתקשה לממש את -Promise. ממה שהבנתי Promise מקבל בקונסטרקטור 2 פרמטרים: resolve מופעל במקרה של הצלחה, reject במקרה של כישלון.

        כעת הנה הקוד שכתבתי בסביבת אנגולר:
        אני מנסה ליצור Promise שעד 10 שניות תוחזר שגיאה ומ-10 ומעלה זו תהיה הצלחה.

          errorMessege: string = "Promise error !";
          myPromise = new Promise((resolve, reject) => {
            // Perform some async operation
        
            setTimeout(() => {
              const data = this.errorMessege;
              reject(data);
            }, 0);
            setTimeout(() => {
              const data = this.successMessege;
              resolve(data);
            }, 10000);
        
          });
        
          consumePromise() {
            this.myPromise.then((data) => {
              console.log(data);
            }).catch((error) => {
              console.error(error);
            });
          }
        

        זה הכפתור שמנסה לצרוך את Promise

        <button (click)=consumePromise()>consume</button>
        

        מה שקורה בפועל זה:
        א. מיד שאני טוען את הדף מופיע לי שגיאה של ה-Promise בקונסול
        ב. לא משנה מתי אני לוחץ על הכפתור תמיד הוא יתן שגיאה.

        אשמח להסבר, תודה רבה.

        W yossizY dovidD 3 תגובות תגובה אחרונה
        0
        • yyyY yyy

          מתקשה לממש את -Promise. ממה שהבנתי Promise מקבל בקונסטרקטור 2 פרמטרים: resolve מופעל במקרה של הצלחה, reject במקרה של כישלון.

          כעת הנה הקוד שכתבתי בסביבת אנגולר:
          אני מנסה ליצור Promise שעד 10 שניות תוחזר שגיאה ומ-10 ומעלה זו תהיה הצלחה.

            errorMessege: string = "Promise error !";
            myPromise = new Promise((resolve, reject) => {
              // Perform some async operation
          
              setTimeout(() => {
                const data = this.errorMessege;
                reject(data);
              }, 0);
              setTimeout(() => {
                const data = this.successMessege;
                resolve(data);
              }, 10000);
          
            });
          
            consumePromise() {
              this.myPromise.then((data) => {
                console.log(data);
              }).catch((error) => {
                console.error(error);
              });
            }
          

          זה הכפתור שמנסה לצרוך את Promise

          <button (click)=consumePromise()>consume</button>
          

          מה שקורה בפועל זה:
          א. מיד שאני טוען את הדף מופיע לי שגיאה של ה-Promise בקונסול
          ב. לא משנה מתי אני לוחץ על הכפתור תמיד הוא יתן שגיאה.

          אשמח להסבר, תודה רבה.

          W מחובר
          W מחובר
          WEB
          כתב ב נערך לאחרונה על ידי
          #4
          פוסט זה נמחק!
          תגובה 1 תגובה אחרונה
          0
          • yyyY yyy

            מתקשה לממש את -Promise. ממה שהבנתי Promise מקבל בקונסטרקטור 2 פרמטרים: resolve מופעל במקרה של הצלחה, reject במקרה של כישלון.

            כעת הנה הקוד שכתבתי בסביבת אנגולר:
            אני מנסה ליצור Promise שעד 10 שניות תוחזר שגיאה ומ-10 ומעלה זו תהיה הצלחה.

              errorMessege: string = "Promise error !";
              myPromise = new Promise((resolve, reject) => {
                // Perform some async operation
            
                setTimeout(() => {
                  const data = this.errorMessege;
                  reject(data);
                }, 0);
                setTimeout(() => {
                  const data = this.successMessege;
                  resolve(data);
                }, 10000);
            
              });
            
              consumePromise() {
                this.myPromise.then((data) => {
                  console.log(data);
                }).catch((error) => {
                  console.error(error);
                });
              }
            

            זה הכפתור שמנסה לצרוך את Promise

            <button (click)=consumePromise()>consume</button>
            

            מה שקורה בפועל זה:
            א. מיד שאני טוען את הדף מופיע לי שגיאה של ה-Promise בקונסול
            ב. לא משנה מתי אני לוחץ על הכפתור תמיד הוא יתן שגיאה.

            אשמח להסבר, תודה רבה.

            yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי
            #5

            @yyy הפונקציה שאתה מעביר ל-new Promise מתחילה לרוץ מיד
            תעשה שרק בלחיצה על הכפתור תיצור את ה-promise

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

            תגובה 1 תגובה אחרונה
            0
            • yyyY yyy

              מתקשה לממש את -Promise. ממה שהבנתי Promise מקבל בקונסטרקטור 2 פרמטרים: resolve מופעל במקרה של הצלחה, reject במקרה של כישלון.

              כעת הנה הקוד שכתבתי בסביבת אנגולר:
              אני מנסה ליצור Promise שעד 10 שניות תוחזר שגיאה ומ-10 ומעלה זו תהיה הצלחה.

                errorMessege: string = "Promise error !";
                myPromise = new Promise((resolve, reject) => {
                  // Perform some async operation
              
                  setTimeout(() => {
                    const data = this.errorMessege;
                    reject(data);
                  }, 0);
                  setTimeout(() => {
                    const data = this.successMessege;
                    resolve(data);
                  }, 10000);
              
                });
              
                consumePromise() {
                  this.myPromise.then((data) => {
                    console.log(data);
                  }).catch((error) => {
                    console.error(error);
                  });
                }
              

              זה הכפתור שמנסה לצרוך את Promise

              <button (click)=consumePromise()>consume</button>
              

              מה שקורה בפועל זה:
              א. מיד שאני טוען את הדף מופיע לי שגיאה של ה-Promise בקונסול
              ב. לא משנה מתי אני לוחץ על הכפתור תמיד הוא יתן שגיאה.

              אשמח להסבר, תודה רבה.

              dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי dovid
              #6

              @yyy כתב בJS תגובה אסינכרונית:

              אני מנסה ליצור Promise שעד 10 שניות תוחזר שגיאה ומ-10 ומעלה זו תהיה הצלחה.

              מהמילים האלה נראה חוסר הבנה לגבי פרומייס.

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

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              תגובה 1 תגובה אחרונה
              2
              תגובה
              • תגובה כנושא
              התחברו כדי לפרסם תגובה
              • מהישן לחדש
              • מהחדש לישן
              • הכי הרבה הצבעות


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

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

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