It is currently 8 June 2025, 13:04 Advanced search

yeld vs await

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Re: yeld vs await

Postby mcdok » 29 December 2020, 9:29

Allora proverò a riaprire l'assistenza appena ne avrò l'opportunità magari facendo riferimento a questo 3ad.
Per ora grazie.
mcdok
 
Posts: 855
Joined: 19 July 2011, 16:18

Re: yeld vs await

Postby mcdok » 30 December 2020, 8:58

lucabaldini wrote:Riguardo la connect vedo che è una Promise quindi si può chiamare anche senza await tramite il costrutto then.catch


Comunque, puoi farmi un'esempio di utilizzo di questo costrutto then.catch ?
mcdok
 
Posts: 855
Joined: 19 July 2011, 16:18

Re: yeld vs await

Postby lucabaldini » 30 December 2020, 16:10

Parlando in generale... sul caso specifico dovrei fare delle prove...

Supponi di avere un metodo asincrono... per esempio fetch().

Il fetch "tradizionale" sarebbe quello con callback... quindi sarebbe scritto così:
Code: Select all
function fetch(callback)
{
  if (Math.random() > 0.5)
    callback("done")
  else
    callback(null, "non ci siamo");
}


e per chiamarla puoi scrivere:
Code: Select all
fetch(function (result, err) {
  if (result)
    console.log("ok: " + result);
  else
    console.log("errore: " + err);
});


Poi sono arrivate le Promise... la Promise è un oggetto che il completamento di un'operazione asincrona.
In pratica, invece di passare la callback come funzione, puoi attaccare le callback all'oggetto restituito.

Quindi la funzione fetch non accetta più una callback ma è definita così:
Code: Select all
let fetch = new Promise(function(resolve, reject) {
  if (Math.random() > 0.5)
    resolve("done");
  else
    reject("non ci siamo");
});


e in quel caso va chiamata così:
Code: Select all
fetch
  .then(function (result) {
     console.log("ok: " + result);
  })
  .catch(function (err) {
     console.log("errore: " + err);
  });


oppure così:
Code: Select all
async function test() {
  try {
    let result = await fetch;
    console.log("ok: " + result);
  }
  catch (ex) {
    console.log("errore: " + ex);
  }
}
test();
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Re: yeld vs await

Postby lucabaldini » 30 December 2020, 16:11

Come vedi, se fetch è una Promise può essere chiamata con await ma anche con il costrutto then.catch...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4990
Joined: 1 October 2010, 17:03
Location: Bologna

Previous

Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 15 guests