Sobes.tech
Junior

Promise жана async/await синтаксисин колдонууда эмнеге айырмасы бар?

sobes.tech AI

AIден жооп

Promise объектти, ал асинхрондук операциянын аяктоо же четке кагуу тууралуу билдирет. Ал .then() жана .catch() колбектер аркылуу асинхрондук агымдарды башкарат.

async/await - бул Promise үстүндөгү синтаксистик шекер, ал асинхрондук кодду окууга жеңил жана синхронго окшош кылат. async деп белгиленген функция ар дайым Promise кайтарат. await оператору only 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();