Stati di una Promise in JavaScript

Una Promise può trovarsi in uno dei tre stati. Alla creazione, la Promise è in attesa (pending), per poi diventare soddisfatta (fulfilled), restituendo il risultato ottenuto, o rifiutata (rejected), restituendo la motivazione del fallimento. Puoi osservare la transizione da uno stato all'altro, eseguendo il seguente codice:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // imposta true o false
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('errore nella promise');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // ogni secondo stampiamo la promise in console
}, 1000);

Tieni presente che gli stati fulfilled e rejected sono immutabili: se una Promise è passata in uno di questi stati, non potrà più passare nell'altro. Vediamo un esempio. Nel codice seguente la chiamata reject avverrà prima, quindi la chiamata resolve sarà ignorata:

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

Crea una Promise che si risolverà con successo dopo un certo tempo. Stampala in console e studia il suo stato iniziale e quello finale.

Задание 2

Crea una Promise che verrà rifiutata dopo un certo tempo. Stampala in console e studia il suo stato iniziale e quello finale.