Sobes.tech
Junior

Какви начини за работа с асинхронен код познаваш?

sobes.tech AI

Отговор от AI

Обратни повиквания, Promises, async/await.

Обратните повиквания: функции, предавани като аргументи на други функции, които се извикват след завършване на асинхронна операция.

Promises: обекти, които предлагат по-удобен начин за управление на асинхронността в сравнение с обратните повиквания. Имат състояния 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();

Сравнение на методите:

Метод Четливост / Поддържане Обработка на грешки Контрол на потока
Обратни повиквания По-малко четливи (Callback Hell) Трудно Трудно
Promises Подобрени Удобно (.catch) Удобно (.then, .catch)
async/await Най-добри Удобно (try...catch) Удобно (await)

Най-препоръчваният метод в съвременните Node.js приложения е използването на async/await поради неговата четливост и удобство. Promises остават важен инструмент, особено на по-ниско ниво на реализация. Обратните повиквания се използват в остарял код или за нискоуровневи операции в ядрото на Node.js.