Sobes.tech
Junior

Чӣ роҳҳои кор бо коди асинхронӣ мешиносӣ?

sobes.tech AI

Ҷавоб аз AI

Callbacks, Promises, async/await.

Callbacks: Функсияҳо, ки ҳамчун аргумент ба функсияҳои дигар дода мешаванд ва пас аз анҷоми амалиёти асинхронӣ даъват мешаванд.

Promises: Объектҳо, ки роҳи қулайтар барои идоракунии асинхронӣ нисбат ба callbacks пешниҳод мекунанд. Онҳо дорои ҳолатҳои pending, fulfilled ва rejected мебошанд.

// Намунаи Promise
function asyncOperation() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Амалиёт бо муваффақият анҷом ёфт!');
    }, 1000);
  });
}

asyncOperation()
  .then(result => console.log(result))
  .catch(error => console.error(error));

async/await: Шакли синтаксиси болои Promises, ки кодро асинхрон бештар ба синхрон монанд мекунад ва хонданашро беҳтар мекунад.

// Намунаи async/await
async function performAsyncOperation() {
  try {
    const result = await asyncOperation();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

performAsyncOperation();

Мувофиқи усулҳо:

Усул Хондан / Дастгирӣ Ҳаллу хато Назорати раванд
Callbacks Камтар хондашаванда (Callback Hell) Суруд Суруд
Promises Беҳтаршуда Қулай (.catch) Қулай (.then, .catch)
async/await Беҳтарин Қулай (try...catch) Қулай (await)

Дар барномаҳои муосири Node.js, истифодаи async/await бештар тавсия дода мешавад, зеро хондан ва истифодаи он қулай аст. Promises ҳамчун воситаи муҳим боқӣ мемонанд, махсусан дар сатҳи поёнтар. Callbacks дар коди кӯҳна ё барои амалиётҳои пасти сатҳ дар ядрои Node.js истифода мешаванд.