Middle
Async/await şəklində təqdim olunan sintaktik şəkərin Promise ilə müqayisədə üstünlüyü nədir?
sobes.tech Süni İntellekt
AI-dan cavab
async/await-in əsas üstünlüyü, "təmiz" vədələrə nisbətən, asinxron kodu daha sinxron və oxumaq asan tərzdə yaza bilməsidir.
Müqayisə:
| Tərəf | Promise |
async/await |
|---|---|---|
| Oxunaqlıq | "Vədələr zənciri"nə səbəb ola bilər. | Kodu demək olar ki, sinxron kimi yaza bilir. |
| Xəta idarəetməsi | .catch() istifadə edir. |
Standart try...catch istifadə edir. |
| Ardıcıllıq | Diqqətlə zəncirləmə və ya Promise.all tələb edir. |
Aydın və asan oxunaqlıdır. |
| Debugging | İzləmək daha çətin ola bilər. | Sinxron kodun debug olunmasına bənzəyir. |
| Sintaktik səs-küyü | Çox .then(), .catch(). |
Daha az boilerplate kod. |
Vədələrlə nümunə:
// Vədələrlə nümunə
fetch('user.json')
.then(response => response.json())
.then(user => fetch(`https://api.github.com/users/${user.name}`))
.then(githubUser => githubUser.json())
.then(githubUser => {
// Məlumatların işlənməsi
console.log(githubUser);
})
.catch(error => {
console.error('Xəta:', error);
});
async/await ilə nümunə:
// async/await ilə nümunə
async function getUserData() {
try {
const userResponse = await fetch('user.json');
const user = await userResponse.json();
const githubResponse = await fetch(`https://api.github.com/users/${user.name}`);
const githubUser = await githubResponse.json();
// Məlumatların işlənməsi
console.log(githubUser);
} catch (error) {
console.error('Xəta:', error);
}
}
getUserData();
Beləliklə, async/await vədləri dəyişmir, onlar üzərində sintaktik şəkərdir və asinxron əməliyyatları daha intuitiv və asan dəstəklənən edir.