Promise-tilstander i JavaScript

Et promise kan være i en av tre tilstander. Ved opprettelse er promise i ventemodus (pending), og kan deretter bli oppfylt (fulfilled), og returnere det oppnådde resultatet, eller avvist (rejected), og returnere årsaken til avvisning. Du kan se overgangen fra en tilstand til en annen ved å kjøre følgende kode:

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

setInterval(function() {
  console.log(promise); // hvert sekund skriver vi promise til konsollen
}, 1000);

Vær oppmerksom på at tilstandene fulfilled og rejected er uforanderlige: hvis promise har gått over til en av disse tilstandene, kan den ikke lenger gå over til en annen. La oss se på et eksempel. I følgende kode vil kallet til reject skje først, derfor vil kallet til resolve bli ignorert:

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

Lag et promise som vil bli oppfylt med suksess om en stund. Skriv det til konsollen og studer dens opprinnelige tilstand og fullført tilstand.

Задание 2

Lag et promise som vil mislykkes om en stund. Skriv det til konsollen og studer dens opprinnelige tilstand og fullført tilstand.