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-ի միջուկում։