Visualizzazione dei risultati da 1 a 7 su 7

Discussione: fetch async await

  1. #1

    fetch async await

    Ciao a tutti
    Ho questo script:

    codice:
    async function xhttp(url, formdata){
        const response = await fetch(url, {
            method: "POST",
            body: formdata
        })
    }
    
    function esxample(){
    let formdata = new FormData;
    
    let url = "lib/contacts.php";
            let response = xhttp(url, formdata)     
                .then(response => response.text())
                .catch(err => consolo.log(err));
    alert(response);
    mi da come risultato [object Promise]

    come mai?

  2. #2
    ho provato anche così:

    codice:
    async function xhttp(url, formdata){
        const response = await fetch(url, {
            method: "POST",
            body: formdata
        })
        .then(response => response.text() )
        .then(function(data) { return data } )
        .catch(err => console.log(err));
    }
    ma sempre stessa cosa

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Prova cosi:

    codice:
    <!DOCTYPE html>
    <html>
    <body>
    
    <h2>JavaScript async / await</h2>
    
    <h1 id="demo"></h1>
    
    <script>
    async function myDisplay() {
      let myPromise = new Promise(function(resolve, reject) {
        resolve("I love You !!");
      });
      document.getElementById("demo").innerHTML = await myPromise;
    }
    
    myDisplay();
    </script>
    
    </body>
    </html>

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da techno Visualizza il messaggio
    mi da come risultato [object Promise]
    come mai?
    Perché async/await non sono altro che parole chiave per usare una sintassi alternativa e semplificata sempre basata sull'uso delle Promise.

    Una funzione asincrona marcata con async restituisce pertanto sempre una Promise.

    Puoi usare i metodi della Promise stessa per definire cosa fare dopo, oppure usare la parola chiave await per chiamare la funzione scrivendo il codice in modo "simil sincrono" ma che "dietro le quinte" fa uso delle Promise ed esegue il codice quando questa viene "risolta".

    Questa cosa ti è stata detta sia qui ma anche in questa discussione: ogni volta riproponi in chiave diversa o in un altro scenario la stessa problematica, alla quale ti viene data risposta ma spesso non c'è un proseguo, salvo poi aprire un altro thread dove di fatto riproponi di nuovo lo stesso identico problema, leggermente cambiato, dove chiedi di spiegarti qualcosa a cui non dai mai risposta e che però - evidentemente - non approfondisci nemmeno (o non cerchi di farlo, o non arrivi in fondo definitivamente alla questione comprendendo il meccanismo).

    La programmazione asincrona è fondamentale in JavaScript.

    Io consiglio di studiarla e padroneggiarla una volta per tutte, ma ognuno fa le proprie scelte e so che il suggerimento cadrà di nuovo nel vuoto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Hai ragione e devo dirti che ho seguito anche in passato le vostre discussioni solo che non riesco a capirlo, se fetch sostituisce in modo abbreviato promise perché dovrei usare promise?

    Mi dispiace crearvi tutti questi disturbi ma come dici tu vorrei una volta per tutte capirlo sto maledetto promise.

    Cioè quello che non ho capito facendo una promise il codice viene temporaneamente bloccato finché non ci sia una risposta della promise?

    Se è così perché nello script che ho postato il codice continua senza aspettare la risposta della promise?
    Ultima modifica di techno; 17-05-2022 a 21:02

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da techno Visualizza il messaggio
    Hai ragione e devo dirti che ho seguito anche in passato le vostre discussioni solo che non riesco a capirlo, se fetch sostituisce in modo abbreviato promise perché dovrei usare promise?
    Scusa, ho tirato in ballo fetch() che è solo una delle tante funzioni che usano le Promise, ma in questo caso non c'entrava effettivamente col discorso generale.

    Quote Originariamente inviata da techno Visualizza il messaggio
    Mi dispiace crearvi tutti questi disturbi ma come dici tu vorrei una volta per tutte capirlo sto maledetto promise.
    In realtà, il disturbo è più che altro un dispiacere dato dal sapere che mentre sviluppi hai senz'altro un "timore" (quantomeno reverenziale) nell'utilizzo di certi strumenti: se tu chiarissi una volta per tutti i tuoi dubbi a riguardo, saresti molto più tranquillo, fluente e probabilmente "rilassato" (in un certo senso) nella stesura del codice, perché non ti aspetteresti sorprese sgradite da quello che stai scrivendo e coglieresti molto di più il lato divertente della programmazione in JavaScript.

    Quote Originariamente inviata da techno Visualizza il messaggio
    Cioè quello che non ho capito facendo una promise il codice viene temporaneamente bloccato finché non ci sia una risposta della promise?
    Se è così perché nello script che ho postato il codice continua senza aspettare la risposta della promise?
    No, la Promise serve proprio a NON bloccare il codice, bensì a consentire di definire cosa fare dopo una determinata operazione, rappresentata da una funzione (come "fetch", per dirne una), una volta che questa ha avuto termine con successo, posto che questa venga eseguita in modo asincrono.

    Per non fare confusione tra Promise e async/await (che sono sostanzialmente un aiuto nell'uso delle Promise, poco di più), approfondisci le due cose separatamente.

    Ad esempio, per le Promise leggi questo tutorial oppure questo. Assicurati di aver compreso bene il concetto provando gli esempi.

    In seguito, approfondisci async/await ad esempio in questo tutorial.

    Ne trovi comunque tantissimi altri cercando con Google, che accompagnano passo passo, assieme a filmati su YouTube che mostrano degli esempi pratici.

    Si tratta di strumenti che permeano lo sviluppo in JavaScript ovunque: una volta compresi questi, l'ostacolo maggiore (o uno dei tanti) è superato.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Grazie ho approfondito e credo di aver capito, speriamo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.