Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա async/await և Promise կառուցվածքների միջև JavaScript-ում ասինխրոնային կոդով աշխատելիս։

sobes.tech AI

Պատասխան AI-ից

Promise-ը օբյեկտ է, որը ներկայացնում է ասինխրոն գործողության արդյունքը, որը կարող է լինել կատարված կամ մերժված ապագայում։ Այն թույլ է տալիս գրանցել մշակողներ then() և catch() մեթոդների միջոցով։

async/await-ը սինտաքսիկ շաքար է Promise-ի վրա, որը թույլ է տալիս գրել ասինխրոն կոդը սինխրոն ոճով, դարձնելով այն ավելի ընթեռնելի և հեշտ դետագրման համար։

Հիմնական տարբերությունները՝

  • Promise-ը պահանջում է then/catch շղթաներ արդյունքների և սխալների մշակման համար։
  • async/await-ը թույլ է տալիս օգտագործել await բանալի բառերը՝ սպասելու Promise-ի արդյունքին՝ ներսում ասինխրոն ֆունկցիայի։

Օրինակ՝

// Promise
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// async/await
async function fetchData() {
  try {
    const response = await fetch(url);
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
fetchData();

Այսպիսով՝ async/await-ը պարզեցնում է Promise-ի հետ աշխատանքը, դարձնելով կոդը ավելի գծային և հասկանալի։