Sobes.tech
Junior

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

sobes.tech AI

AIден жооп

async/await — бул промисстер үстүндөгү синтаксистик шекер. Ал асинхрон кодду көбүрөөк окула турган жана синхрон стилине окшош жазууга мүмкүндүк берет, async ачкыч сөзү менен функцияларды белгилеп, алардын ичинде await колдонуп промис чечилүүсүн күтөт. Promises — бул асинхрон операциянын акыркы аяктоо (же ката кетирүү) жана анын натыйжалуулугун көрсөтүүчү объекттер.

Өзгөчөлүк async/await Promise
Синтаксис Көбүрөөк синхрон кодго окшош. .then(), .catch(), .finally() ыкмаларын колдонуу.
Окуулушу Жалпысынан жогору, өзгөчө з chained. Кыйынчылыкка алып келиши мүмкүн "Callback hell".
Ката иштетүү Стандарттык try...catch колдонуу. .catch() же .then() экинчи аргументин колдонуу.
Параллелизм Ачыкка чыгуу Promise.all() же Promise.allSettled() колдонуу талап кылынат. Ачык болушу мүмкүн, бирок async/await жок болсо окуу кыйын.
// Promis менен мисал
function getDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Маалымат алынды');
    }, 1000);
  });
}

getDataPromise()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });
// async/await менен мисал
async function getDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Маалымат алынды');
    }, 1000);
  });
}

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

processData();