'async/await' in JavaScript: scomposizione facile

Apr 11 2023
Ho avuto difficoltà ad apprendere il concetto asincrono e in attesa in JavaScript, ecco perché voglio spiegare qui il più semplicemente possibile in modo che tu non lo trovi affatto difficile: per le funzioni asincrone presumo che tu conosca già le promesse in JS, altrimenti Si prega di leggere la promessa in JavaScript qui: https://amitabhiam.medium.
async() => { attendi }

Ho avuto difficoltà ad apprendere il concetto asincrono e in attesa in JavaScript, ecco perché voglio spiegare qui il più semplicemente possibile in modo che non lo troverai affatto difficile:

Per le funzioni asincrone presumo che tu conosca già le promesse in JS, in caso contrario, leggi le promesse in JavaScript qui:

https://amitabhiam./i-promise-this-way-promise-won-t-break-your-heart-in-javascript-promises-727747b8a6ec

funzioni asincrone :

Una funzione può essere resa asincrona usando la parola chiave 'async'. Può contenere zero o più espressioni di attesa.

Funziona con Promise per evitare più situazioni .then() nella catena di promesse o per scrivere comportamenti basati su promesse in modo chiaro.

Dichiarazione: può essere dichiarata utilizzando 'async function' dove la parola chiave 'await' è consentita all'interno del corpo della funzione.

wait expression sospende l'esecuzione fino a quando la promessa di ritorno non viene soddisfatta o rifiutata, facendo in modo che la funzione promise si comporti in modo sincrono.

wait è valido solo all'interno della funzione async.

Esempio usando la promessa:

function resolveAfter6Second() {
    console.log("starting a slow promise");
    return new Promise ((resolve) => {
        setTimeout( function () {
            resolve("slow");
            console.log("This is slow promise");
        }, 6000);
    } );
}

function resolveAfter3Second() {
    console.log("starting fast promise");
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve("fast");
        console.log("fast promise is done");
      }, 3000);
    });
  }


async function sequentialStart() {
    console.log("performing Sync Operation");

    const slow = await resolveAfter6Second();
    console.log(slow);

    const fast = await resolveAfter3Second();
    console.log(fast);
}

sequentialStart();