בקשת הסבר בפונקציית async
-
async function asd (){ var response = await fetch("https://tchumim.com/", { method: "post", headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, //make sure to serialize your JSON body body: JSON.stringify({ name: 'w', password: 'ww' }) }) .then( (response) => { //do something awesome that makes the world a better place }); console.log('ss'); }הוא מחזיר פרומיז ולא מחזיר בכלל את הss.
אם הוא לא מחזיר ss בגלל שגיאה והא-await לא נותן להתקדם אז למה הפרומיז חוזר? -
@chagold
א. כאשר העתקתי את הקוד לקונסול והרצתי הוא כן הדפיס לי "ss". (למרות שהתשובה מ-tchumim.com היתה 404, אבל כלפיfetchזה לא נחשב כשגיאה)
עריכה: הרצתי את הקוד באתר של תחומים, באתר אחר הייתי מקבל שגיאת CORS ואז ה-ss לא היה נדפס
ב. במקרה של שגיאה אמיתית, כלומר rejection של הפרומיס שלfetch(לדוגמה כתובת שלא קיימת) אז באמת ה-awaitנכשל, ואז השורה הבאה לא מורצת.
אבל עדיין בכל מקרה הפונקציה תחזיר פרומיס כי פונקציה אסינכרונית תמיד חוזרת מיד עם פרומיס. הפרומיס תכשל אח"כ כי היתה שגיאה בהרצת הפונקציה.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות