Stavy promisu v JavaScripte

Promis môže byť v jednom z troch stavov. Pri vytvorení je promis v stave čakania (pending), potom sa môže stať splneným (fulfilled), čím vráti získaný výsledok, alebo zamietnutým (rejected), čím vráti dôvod zlyhania. Prechod z jedného stavu do druhého môžete vidieť spustením nasledujúceho kódu:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // nastavte buď true, alebo false
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('error in promise');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // každú sekundu vypíšeme promis do konzoly
}, 1000);

Majte na pamäti, že stavy fulfilled a rejected sú nemenné: ak promis prešiel do jedného z týchto stavov, už nemôže prejsť do druhého. Pozrime sa na príklad. V nasledujúcom kóde sa volanie reject stane skôr, preto volanie resolve bude ignorované:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('error')), 1000);
  setTimeout(() => resolve('ignored'), 2000);
});
Задание 1

Vytvorte promis, ktorý sa úspešne vykoná o nejaký čas. Vypíšte ho do konzoly a preštudujte si jeho počiatočný stav a dokončený stav.

Задание 2

Vytvorte promis, ktorý zlyhá o nejaký čas. Vypíšte ho do konzoly a preštudujte si jeho počiatočný stav a dokončený stav.