Promise-tilstande i JavaScript

Et promise kan være i en af tre tilstande. Ved oprettelse er promise i afventende tilstand (pending), og kan derefter blive opfyldt (fulfilled) og returnere det opnåede resultat, eller afvist (rejected) og returnere årsagen til afvisningen. Du kan se overgangen fra en tilstand til en anden ved at køre følgende kode:

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

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

Bemærk, at tilstandene fulfilled og rejected er uforanderlige: hvis et promise er skiftet til en af disse tilstande, kan det ikke længere skifte til en anden. Lad os se på et eksempel. I følgende kode vil kaldet til reject ske først, derfor vil kaldet til resolve blive ignoreret:

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

Lav et promise, der vil blive opfyldt med succes efter et stykke tid. Udskriv det til konsollen og undersøg dets starttilstand og afsluttede tilstand.

Задание 2

Lav et promise, der vil blive afvist efter et stykke tid. Udskriv det til konsollen og undersøg dets starttilstand og afsluttede tilstand.