Sobes.tech
Junior

Фарқияти истифодаи Promise ва синтаксиси async/await чист?

sobes.tech AI

Ҷавоб аз AI

Promise წარმოადგენს ობიექტს, რომელიც ასახავს ასინქრონული ოპერაციის საბოლოო დასრულებას ან უარყოფას. ის მართავს ასინქრონულ ნაკადებს then() და catch() callback-ების საშუალებით.

async/await არის სინტაქსური შაქარი Promise-ზე, რომელიც ასინქრონულ კოდს ხდის უფრო წაკითხვად და სინქრონულს მსგავსი. ფუნქცია, რომელიც მონიშნულია როგორც async, ყოველთვის აბრუნებს Promise-ს. ოპერატორი await შეიძლება გამოყენებულ იქნას მხოლოდ async ფუნქციის შიგნით და აჩერებს ფუნქციის შესრულებას მანამ, სანამ Promise არ შესრულდება ან უარყოფილი იქნება, რის შემდეგაც აბრუნებს მის შედეგს ან წარმოშობს გამონაკლისს.

ასპექტი Promise Async/Await
წაკითხვადობა საჭიროებს .then() და .catch() ჯაჭვებს ჰგავს სინქრონულ კოდს, ხაზოვანი ნაკადი
შეცდომების მართვა იყენებს .catch() იყენებს try...catch ბლოკებს
ნაკადის შესრულება მართავს callback-ები აჩერებს/გაახანგრძლივებს ფუნქციას
დაბრუნებული მნიშვნელობა Promise Promise (async ფუნქციისთვის) ან Promise-ის შედეგი (await-ისთვის)
დამოკიდებულება დამოუკიდებელი მექანიზმი აგებულია Promise-ზე

მოყვანილი მაგალითი Promise-თან:

// მაგალითი Promise-თან
function fetchDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("მიღებული მონაცემები (Promise)");
    }, 1000);
  });
}

fetchDataPromise()
  .then(data => console.log(data))
  .catch(error => console.error(error));

მოყვანილი მაგალითი async/await-თან:

// მაგალითი async/await-თან
function fetchDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("მიღებული მონაცემები (async/await)");
    }, 1000);
  });
}

async function showData() {
  try {
    const data = await fetchDataAsync();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

showData();