პრომისებში გამონაკლისი სიტუაციები JavaScript-ში

ახლა ვისწავლოთ თუ როგორ დავამუშაოთ პრომისის შიგნით წარმოშობილი გამონაკლისი სიტუაციები. ასეთი სიტუაციის წარმოქმნის შემთხვევაში ჩვენ უნდა უარვყოთ პრომისი სპეციალური უარყოფის ფუნქციის გამოყენებით, რომელიც ავტომატურად გადაეცემა პრომისის ფუნქციის მეორე პარამეტრს:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    ...
  }, 3000);
});

პრომისის ფუნქციის შიგნით ჩვენ უნდა გამოვიძახოთ resolve, თუ ყველაფერი ნორმალურად განვითარდა, ან reject, თუ წარმოიშვა გამონაკლისი სიტუაცია:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // პრომისის მონაცემები
    } else {
      reject('შეცდომა პრომისში'); // თქვენი შეცდომის ტექსტი
    }
  }, 3000);
});

შემდეგ then მეთოდში პარამეტრებად თქვენ უნდა გადასცეთ არა ერთი, არამედ ორი ფუნქცია: პირველი იმუშავებს, თუ პრომისმა იმუშავა ნორმალურად (რეზოლვდება), ხოლო მეორე - თუ მუშაობდა შეცდომით (რეჯექტდება):

javascriptpromise.then(
  function(result) {
    console.log(result); // გამოიტანს პრომისის შედეგს
  },
  function(error) {
    console.log(error);  // გამოიტანს შეცდომის ტექსტს
  }
);

როგორც წესი, ზემოთ მოყვანილი კოდი იწერება უფრო კომპაქტურად, ასე:

javascriptpromise.then(function(result) {
  console.log(result); // გამოიტანს პრომისის შედეგს
}, function(error) {
  console.log(error);  // გამოიტანს შეცდომის ტექსტს
});
Задание 1

შექმენით ასინქრონული კოდი, რომელიც გენერირებს შემთხვევით რიცხვებს 0-დან 5-მდე. შემოახვიეთ ეს ყველაფერი პრომისში. პრომისმა თავისი შედეგით დააბრუნოს ერთეულის გაყოფის შედეგი გენერირებულ რიცხვზე. პრომისი დაასრულოს შეცდომით, თუ მოხდა გაყოფა ნულზე, და წარმატებით ყველა სხვა შემთხვევაში.