Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ ვალდებულებების კონცეფცია JavaScript-ში და როგორ გამოიყენება ისინი ასინქრონული ოპერაციების მართვისთვის?

sobes.tech AI

პასუხი AI-სგან

JavaScript-ში ვალდებულებები (Promises) არის ობიექტები, რომლებიც წარმოადგენენ ასინქრონული ოპერაციის შედეგს და საშუალებას აძლევენ მასთან მუშაობას, როდესაც ოპერაცია დასრულდება (წარმატებით ან შეცდომით). ისინი ეხმარებიან "callback ჯოჯეხის" თავიდან აცილებაში და კოდს უფრო წაკითხვადს ხდიან.

ვალდებულება შეიძლება იყოს ერთ-ერთი სამი მდგომარეობიდან:

  • pending (მოლოდინში) — ოპერაცია ჯერ კიდევ არ დასრულებულა;
  • fulfilled (შესრულებული) — ოპერაცია წარმატებით დასრულდა;
  • rejected (უარყოფილი) — ოპერაცია დასრულდა შეცდომით.

მოსამზადებლად გამოიყენება Promise კონსტრუქტორი, რომელიც იღებს ფუნქციას ორი პარამეტრით: resolve და reject. როდესაც ასინქრონული ოპერაცია დასრულდება, იძახება resolve (წარმატება) ან reject (შეცდომა).

მაგალითი:

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const success = true; // იმიტაცია შედეგის
      if (success) {
        resolve('მონაცემები მიღებულია');
      } else {
        reject('შეცდომა მონაცემების მიღებისას');
      }
    }, 1000);
  });
}

fetchData()
  .then(result => {
    console.log(result); // 'მონაცემები მიღებულია'
  })
  .catch(error => {
    console.error(error);
  });

ვალდებულებებს ასევე შეუძლიათ ჯაჭვში გაერთიანება, რაც ასინქრონული ოპერაციების სერიული დამუშავებას ამარტივებს.