Stanja promisa v JavaScript

Promis je lahko v enem od treh stanj. Ob ustvarjanju je promis v stanju čakanja (pending), nato pa lahko preide v izpolnjeno stanje (fulfilled) in vrne dobljeni rezultat, ali v zavrnjeno stanje (rejected) in vrne razlog za zavrnitev. Prehod iz enega stanja v drugo lahko opazite z zagonom naslednje kode:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // nastavite na true ali false
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('napaka v promisu');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // vsako sekundo izpišemo promis v konzolo
}, 1000);

Upoštevajte, da sta stanji fulfilled in rejected nespremenljivi: če je promis prešel v eno od teh stanj, ne more več preiti v drugo. Poglejmo si primer. V naslednji kodi se bo klic reject zgodil prej, zato bo klic resolve prezrt:

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

Naredite promis, ki se bo uspešno izpolnil po določenem času. Izpišite ga v konzolo in preučite njegovo začetno stanje ter končno stanje.

Задание 2

Naredite promis, ki se ne bo uspešno izpolnil po določenem času. Izpišite ga v konzolo in preučite njegovo začetno stanje ter končno stanje.