Menu
Coddy logo textTech

Promises

Lezione 8 di 9 del corso Gli aspetti più complessi di JavaScript moderno (ES6+) di Coddy.

A volte abbiamo bisogno di eseguire alcune attività, che possono richiedere del tempo per essere completate. 

Questo tipo di codice non può essere scritto in modo sincrono normale, perciò queste attività sono chiamate asincrone o semplicemente async.

Le promise sono oggetti Javascript che garantiscono il completamento delle attività async e restituiscono il risultato, che può essere un successo o un errore!

Una promise può avere tre stati: 1. In attesa (stato iniziale) 2. Completata (restituisce il risultato) 3. Rifiutata (restituisce un errore)

let myPromise = new Promise(function(resolve, reject) {

  resolve("Everything is fine"); // questa callback viene chiamata se l'attività ha successo
  reject("Error");  // questa callback viene chiamata se l'attività fallisce
  
});

// Oppure con una funzione freccia
let myPromise2 = new Promise((resolve, reject) => {//code});

qui myPromise è un oggetto promise. Il callback resolve viene chiamato se la promise viene completata, reject viene chiamato se la promise viene rifiutata.

myPromise.then( value => console.log(value)) // Va tutto bene
		 .catch( error => console.log(error)) // Errore		

per accedere al valore del risultato, se la promise ha successo, possiamo usare .then( value => // your code ) . se la promise viene rifiutata, possiamo usare .catch( value => // your code ).

Le promise sono generalmente usate nelle attività async, ad es. quando si chiamano API di backend (front-end), richieste al database (backend), ecc.

challenge icon

Sfida

Medio

Scrivi una funzione getPromise che restituisce una promessa che si risolve con la stessa stringa oppure viene rifiutata con la stringa "Rejected" se la stringa di input è "Coddy"

Provalo tu

function getPromise(s) {
  // Scrivi il codice qui
}

Tutte le lezioni di Gli aspetti più complessi di JavaScript moderno (ES6+)

Esercitati da solo: Compilatore JavaScript online