Fetch API è una modalità per accedere a risorse remote usando dei meccanismi asincroni anche in maniera semplificata. In questo capitolo faremo uso sia di fetch API che delle istruzioni async await di Javascript. Non è necessario usare async await ma ci semplifica non poco la scrittura dei programmi.
Per fare una richiesta remota è possibile usare il metodofetch()
che ha come parametro l'indirizzo della risorsa che vogliamo
e ritorna come risultato un oggetto di tipo
Promise
che di per se indica una operazione che prima o poi verrà completata
(è pur sempre una richiesta in rete... ha bisogno di qualche millesimo di secondo!)
o fallirà.
A questo punto dovremmo istruire l'oggetto Promise sul da farsi quando la richiesta
sarà completata, il che non è poi impossibile ma ci viene in aiuto l'istruzione
await
per semplificarci la vita:
let risposta = await fetch("https://x.y.x/risorsa");
await
fa in modo che l'esecuzione del nostro script venga sospesa
e riprenda soltanto quando la risorsa è arrivata. La gestione asincrona
in pratica la fa il browser. Da tener presente però che
se usiamo await la funzione che contiene questa istruzione
va dichiarata come async
per marcare che è una funzione asincrona.
Nel caso del metodo fetch() il risultato nel caso in cui tutto va bene
è un oggetto
Response
che tra gli altri ha un metodo json()
che fa il parsing di un testo
JSON e restituisce di nuovo un Response
(una Promise)
che se "finisce bene" mi restituise l'oggetto Javascript rappresentato.
A questo punto però possiamo usare di nuovo await
.
La pratica è molto più facile:
Invio dei dati al server
TODO