איך מתמודדים עם asinc ב-javascript
-
תסתכל בהודעה המקורית שלי.
יש שתי קטעי קוד. אתה מדבר על הקטע השני שם יש פונקציה בשם searchFromDb, היא מקבלת שתי ארגומנטים: מילה לחיפוש ופונקציית קלבאק, כלומר "מה לעשות אחרי" הצלחה או כישלון.
הfunc() זה הפעלה של הפונקציה שמועברת כארגומנט השני. במקרה שלנו הערך האקטואלי שלה חשוף בקטע קוד הראשון: שם אני קורא לפונקציה searchFromDb ואני מזין לפרמטר הראשון סתם טקסט לבדיקה, ולשני פוקנציה שהיא זו שתופעל לבסוף. היא מקבלת בקטע השני את השם func כי זה שם הארגומנט השני.
מקוה שהבנת, אשמח לעזור עוד אז אל תרפה. רק תדייק מה אתה מבין ומה לא.פורסם במקור בפורום CODE613 ב08/09/2015 16:24 (+03:00)
-
func() שווה ל'אל תעשה כלום'?
באותה מידה השורה היתה יכולה להיות ריקה?אם לא הייתי כותב כלום, אז כלום לא היה קורא והלקוח (הבקשה מהדפדפן) לעולם לא הייתה נענית.
ע"י הפעלה של הfunc ללא פרמטר מורצת השורה הזו:res.status(404).send('Not found');
תוכל לראות איך ע"י עיון בקטע קוד הראשון.
פורסם במקור בפורום CODE613 ב08/09/2015 16:28 (+03:00)
-
ברור שאני מסתכל על הקוד המקורי
מאיפה אני מעתיק ועל מה אני שואל ?
@דוד ל.ט.func() שווה ל'אל תעשה כלום'?
באותה מידה השורה היתה יכולה להיות ריקה?אם לא הייתי כותב כלום, אז כלום לא היה קורא והלקוח (הבקשה מהדפדפן) לעולם לא הייתה נענית.
ע"י הפעלה של הfunc ללא פרמטר מורצת השורה הזו:res.status(404).send('Not found');
תוכל לראות איך ע"י עיון בקטע קוד הראשון.
כאילו כתוב
func = function(arg) { return arg }
וזו הסיבה שהפונקציה מחזירה את הערך לפונקציה שהפעילה אותה?
איך הקסם הזה נהיה לבד?פורסם במקור בפורום CODE613 ב08/09/2015 17:09 (+03:00)
-
@דוד ל.ט.
תסתכל בהודעה המקורית שלי.
יש שתי קטעי קוד. אתה מדבר על הקטע השני שם יש פונקציה בשם searchFromDb, היא מקבלת שתי ארגומנטים: מילה לחיפוש ופונקציית קלבאק, כלומר "מה לעשות אחרי" הצלחה או כישלון.
הfunc() זה הפעלה של הפונקציה שמועברת כארגומנט השני. במקרה שלנו הערך האקטואלי שלה חשוף בקטע קוד הראשון: שם אני קורא לפונקציה searchFromDb ואני מזין לפרמטר הראשון סתם טקסט לבדיקה, ולשני פוקנציה שהיא זו שתופעל לבסוף. היא מקבלת בקטע השני את השם func כי זה שם הארגומנט השני.
מקוה שהבנת, אשמח לעזור עוד אז אל תרפה. רק תדייק מה אתה מבין ומה לא.נראה שלא הובנתי
אנסה לשאול את אותה שאלה על דוגמא סתמית
אני רואה את זה דומה לדוגמא הלא אפשרית הבאה:var aaa =function() { console.log('111') } aaa() { console.log('222') }הרי כתבת searchFromDb('word', function(result) { if(!result) res.status(404).send('Not found'); else res.send(result); });
ש[לכאורה] בדיוק כמו
var searchFromDb = function('word', function(result) { if(!result) res.status(404).send('Not found'); else res.send(result); });
אז איך אח"כ אתה מריץ אותה עם תוכן אחר בתוך הסקופ????
פורסם במקור בפורום CODE613 ב08/09/2015 17:16 (+03:00)
-
הדוגמה שהבאת לא ברור לי מה היא ממחישה
בא נתרכז בשאלה שלך, לתוך הפונקציה של ה searchFromDb נשלחו שתי פרמטרים האחד זה המילה לחיפוש והשני הוא משתנה שמכיל פונקציה
לפונקצית החיפוש יש לוגיקה פנימית שלפיה היא מחליטה איך להריץ את הפונקציה שיש בתוך המשתנהפורסם במקור בפורום CODE613 ב08/09/2015 17:29 (+03:00)