Sobes.tech
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.