11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Je ne suis pas très à l'aise, avec les promesses.

J'ai écrit la fonction suivante :

HTMLFormElement.prototype.mailer=function()
{
let feedbax=[
'Votre message nous a bien été envoyé'+pe,
'Nous vous en remercions.',
'Nous allons revenir vers vous très prochainement.',
];
if(mail=this.mail.value) let acreback='Une copie de votre message vous a été envoyée à'+space+mail+pt; 
 
let undotted={ from:zage+aro+location.hostname, algonquin:d.body.$('a').outerHTML, nom:nom, origin:origin };
let formdata=new FormData(form); 
for(nom in undotted) if(typeof undotted[nom]=='string') formdata.append(unsc+nom,undotted[nom]);

fetch('Style/mail.css')
.then(function(){ return arguments[0].text(); })
.then(function()
{ 
formdata.append('_style',arguments[0]);

fetch(origin+slash+'Processeurs/conform-maileur.php',{method:'post',body:formdata})
.then(function(){ return arguments[0].text(); })
.then(function()
{ 
switch(arguments[0]) 
{
case 1: feedback=feedbax.join(br); break ;
case 12: feedbax.push(acreback); feedback=feedbax.join(br); break ;
default: feedback=arguments[0];
}
feedback.alerter(); 
})
})
}


Voyez-vous des optimisations possibles ?
Bonsoir dagobert !

Tu peux effectivement améliorer la lisibilité de ta fonction en utilisant async/await : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/async_function.

Si on reprend un exemple analogue à ton utilisation des Promesses, on passerait de ce code :
function fetchQuelqueChose() {
  fetch("https://random.org")
    .then(function(result) {
        console.log(result)
        fetch("https://random2.org")
          .then(function(result) {
            console.log(result)
          }
    }
}

à ceci :
async function fetchQuelqueChose() {
  const result = await fetch("https://random.org")
  console.log(result)
  
  const result2 = await fetch("https://random2.org")
  console.log(result2)
}

Modifié par GuillaumeBauer (26 Jul 2022 - 21:26)