עזרה בפונקצייה map סיום פונקצייה
-
אני רוצה לבצע בדיקת סיכום מחיר בסוף רכישה, בשרת, למנוע הונאות, כלומר לבדוק שוב מול מסד הנתונים מה המחיר של כל פריט ולשלוח מהשרת את המחיר לדף.
אני שולח מהדפדפן לשרת מערך אובייקטים 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); }); }
-
@אבי-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); });
-
תודה ענקית. שרף לי כמה שעות. נסיתי את כל סוגי הלולאות!
כעת אבל לא נותן לי להחזיר את מה שאני צריך.
זה מחזיר ריק. ללא ערך. לא שייך להשתמש בזה פעמים? returnlet 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) }) });
-
הוא מתעקש איתי, לא מחזיר כלום. כל מה שאני מחזיר איפה ששמת את ה - console.log(sac);
הוא מדפיס הכל, אבל להחזיר הוא לא מחזיר.אמרתי אולי אני לא מתקשר איתו טוב, הסתרתי הכל ורק החזרתי זה הגיע נהדר!, רק כל מה שממוקם בשלב הזה לא מגיע, ואין לי ברירה אני חייב לעשות את זה רק שם אחרי התהליך..
לא מחזיר כלום, גם אם אני מחזיר ערך פשוט. כלום. נראה לי חסר עוד return באיזהו מקום