Async / Await

מילת מפתח · JavaScript

1.

תחביר מודרני של JavaScript (ES2017) המאפשר לכתוב קוד אסינכרוני בצורה סדרתית וקריאה — הופך שרשראות Promise מורכבות להוראות ברורות, מקל על ניהול קריאות API, שאילתות מסד נתונים וכל פעולה שאינה חוסמת.

2.

מנגנון מבוסס Promises המציג שתי מילות מפתח: `async` להכרזה על פונקציה אסינכרונית המחזירה אוטומטית Promise, ו-`await` להשהיית הביצוע עד להשלמת ה-Promise — מבטל את ה-"callback hell" והופך את הקוד לתחזוקתי בקנה מידה גדול.

3.

Pattern חיוני בפיתוח Full-stack מודרני המשמש הן בצד הלקוח (React, Next.js) והן בצד השרת (Node.js, Express.js) — מבטיח ביצועים מיטביים על ידי שחרור ה-Thread הראשי במהלך פעולות קלט/פלט כמו קריאות רשת או קריאת קבצים.

ראו גם
PromiseאסינכרוניNode.jsAPI

כדי ליצור פונקציה אסינכרונית ב-JavaScript, מספיק להוסיף את מילת המפתח `async` לפני הכרזת הפונקציה. לדוגמה: `async function fetchData() const response = await fetch('/api/data'); return response.json(); `. מילת המפתח `async` ממירה אוטומטית את ערך ההחזרה ל-Promise, ומאפשרת שימוש ב-`await` בתוך גוף הפונקציה. זהו התחביר הסטנדרטי שאנו משתמשים בו בכל האפליקציות שלנו לניהול תקין של התקשורת עם ה-Backend.

פונקציה אסינכרונית היא פונקציה המוכרזת עם מילת המפתח `async` שמחזירה באופן מרומז Promise ומאפשרת שימוש במילת המפתח `await` בגוף שלה. בניגוד לפונקציה רגילה המתבצעת בצורה סינכרונית וחוסמת, היא משחררת את ה-Thread הראשי בזמן המתנה לפעולה ארוכה (קריאת רשת, טיימר, קריאת קובץ). מנגנון זה חיוני לשמירה על תגובתיות של אפליקציית ווב ולהצעת חוויית משתמש חלקה ללא חסימת הממשק.

פונקציה אסינכרונית היא פונקציה המסוגלת לבצע פעולות ברקע מבלי לחסום את שאר האפליקציה. ב-JavaScript, היא נוצרת עם מילת המפתח `async` ומאפשרת "להשהות" את הביצוע שלה באמצעות `await` עד שמשימה ארוכה מסתיימת. זהו ה-Pattern שאנו משתמשים בו מדי יום ב-Async Code לתזמור קריאות API, אינטראקציות עם מסד נתונים ועיבודים מורכבים באפליקציות React ו-Next.js שלנו.