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

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

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

עזרה בפונקצייה map סיום פונקצייה

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

    אני רוצה לבצע בדיקת סיכום מחיר בסוף רכישה, בשרת, למנוע הונאות, כלומר לבדוק שוב מול מסד הנתונים מה המחיר של כל פריט ולשלוח מהשרת את המחיר לדף.

    אני שולח מהדפדפן לשרת מערך אובייקטים sal ואז אני בודק לפי ID מה המחיר של הפריט ומכפיל בכמות שרשומה בסל.

    השתמשתי בפונקציית map
    אבל אני מתקשה למצוא את הסיום שלה, כלומר אני מבין שאיפה שכתבתי את ה
    console.log(sac);

    כאן אמור להביא לי בסוף הריצה, את הסיכום וכאן גם להחזיר לדף, ולשמור את זה במסד הנתונים אבל הוא מדפיס לי ערך 0.
    נדמה כאילו הוא מדפיס לפני שנגמר כל הריצה על האובייקטים.
    כשאני מדפיס תוך כדי הריצה, זה נראה עובד תקין, אני רואה את המחיר, אני רואה את החישוב, וגם הערך של sac מתחשבן נכון.

    איפה אני טועה?
    תודההה.

    
    let sac=0
    	Promise.all([
    	Promise.all(sal.map(item => {
    	wixData.get("muzarim", item.id)
    		.then((results) => {
    				let item45 = results;
    				let scaa =Number( item.camut) * Number(item45.mehir)
    				sac = sac + scaa;
    			}).catch(err => {
    			console.error(err);
    			})
    			}))
    		.catch((err) => {
    			let errorMsg = err;
    		})
    	]).then(() => {
    		console.log(sac);
    	});
    }
    

    https://www.av-digital.co.il/

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

      @אבי-203
      היה חסר מילת return (חוץ מזה פשטתי קצת את הקוד שהיה קצת מבולבל, היה catch מיותר ו-promise.all מיותר, מקוה שלא סילפתי)

      let sac = 0;
      Promise.all(sal.map(item => {
        return wixData.get('muzarim', item.id)
          .then((results) => {
            let scaa = Number(item.camut) * Number(results.mehir);
            sac += scaa;
          })
          .catch(err => {
            console.error(err);
          });
      }))
        .then(() => {
          console.log(sac);
        });
      

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

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

        תודה ענקית. שרף לי כמה שעות. נסיתי את כל סוגי הלולאות!

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

        
        let sac = 0;
        Promise.all(sal.map(item => {
          return wixData.get('muzarim', item.id)
            .then((results) => {
              let scaa = Number(item.camut) * Number(results.mehir);
              sac += scaa;
            })
            .catch(err => {
              console.error(err);
            });
        }))
          .then(() => {
            
        	toInsert.sach=sac
        	console.log(toInsert);
        wixData.insert("hazmanot",toInsert).then((res) => {
        console.log(res);
        
        				// let	idhazmana2  =  res._id,
        				//  scum=sac
        	return (res,sac)
        })
        
          });
        	
        

        https://www.av-digital.co.il/

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

          @אבי-203 אמר בעזרה בפונקצייה map סיום פונקצייה:

          return (res,sac)

          אין כזה דבר ב-JS להחזיר שני ערכים. אבל אפשר בהחלט להחזיר אובייקט או מערך שכולל בתוכו את שני הערכים.

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

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

            @אבי-203 אמר בעזרה בפונקצייה map סיום פונקצייה:

            res

            גם res לבד הוא לא החזיר לי. חוץ מזה זה תקין?

            https://www.av-digital.co.il/

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

              הוא מתעקש איתי, לא מחזיר כלום. כל מה שאני מחזיר איפה ששמת את ה - console.log(sac);
              הוא מדפיס הכל, אבל להחזיר הוא לא מחזיר.

              אמרתי אולי אני לא מתקשר איתו טוב, הסתרתי הכל ורק החזרתי זה הגיע נהדר!, רק כל מה שממוקם בשלב הזה לא מגיע, ואין לי ברירה אני חייב לעשות את זה רק שם אחרי התהליך..

              לא מחזיר כלום, גם אם אני מחזיר ערך פשוט. כלום. נראה לי חסר עוד return באיזהו מקום 🙂

              https://www.av-digital.co.il/

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

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

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

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