Menu
Coddy logo textTech

Async ו-Await

שיעור 9 מתוך 9 בקורס החלקים המאתגרים ב-JavaScript מודרני (ES6+) של Coddy.

אם השלמת את השיעור האחרון, בטח חשבת שקשה להבין הבטחות או אפילו לזכור את התחביר שלהן!

אל דאגה! ES6 כאן כדי לעזור לך בכך. 

<i>async</i> ו־<i>await</i> הופכים את כתיבת ההבטחות לקלה יותר

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

אנחנו רוצים שהפונקציה הזאת תחזיר הבטחה וגם תחכה לתוצאה של ההבטחה.

אם כותבים async לפני פונקציית Javascript כלשהי, היא תמיד מחזירה הבטחה.

await גורם לפונקציה להמתין להבטחה ולהשהות את ביצוע הפונקציה עד שההבטחה תיפתר.

נבחן דוגמה של שליפת נתונים משרת; הפעולה עשויה להימשך כמה שניות.

 async function fetchData () {
 	const response = await fetch("/url"); // המתן ל-promise
  	const movies = await response.json(); // המתן ל-promise
  	return movies;
  } 
  
  fetchData.then(val => console.log(val)) // הנתונים שהוחזרו מה-API

אפשר להשתמש במילת המפתח await רק בתוך פונקציית async.

אפשר להשתמש ב־async-await הן בפונקציות רגילות והן בפונקציות חץ.

const someFunc = async (a) => { await //קוד }
challenge icon

אתגר

בינוני

ניתנת לך פונקציה foo, שמקבלת מספר שלם n ומחזירה הבטחה.

כתבו פונקציה sum שמקבלת שתי הבטחות כקלט ומחזירה את סכום התוצאות שלהן לאחר שההבטחות נפתרו.

יש לסמן את הפונקציה ב-async!

נסו בעצמכם

const foo = async (x) => {
    return x
}

// כתבו את הקוד שלכם למטה

כל השיעורים ביחידה החלקים המאתגרים ב-JavaScript מודרני (ES6+)

תרגלו בעצמכם: קומפיילר JavaScript אונליין