Async/Await besoin d'aide

a marqué ce sujet comme résolu.

Bonjour,

Il y a fort longtemps j’étais sur Zeste de Savoir mais impossible de retrouver mes identifiants …

A propos de mon problème Je ne vois pas comment résoudre mon problème

(async () => {

  if(condition){

    f1(function(error, {equal}) {
      if(equal) {

        // Async function
        f3()

      } else {
        // Some code
      }
    })
    
  }
  
  f4()

})();

Dans le code ci-dessus, la fonction f4 s’execute parfois avant la fonction f3, mais ce n’est pas ce que je veux. J’aimerai que f4 s’éxecute bien après f1 et f3 si elles sont appelées. J’ai essayé d’ajouter await devant f3 mais ça ne fonctionne pas.

Merci :D

Peut être que f1 ne retourne aucune promesse, donc c’est normal que le await n’a aucun effet.

Pour corriger ton problème, tu peux faire comme ceci (pas testé mais l’idée est là) :

(async () => {

  if(condition){

    await new Promise((resolve) => {
      f1(function(error, {equal}) {
        if(equal) {

          // Async function
          await f3()
          resolve()

        } else {
          // Some code
        }
      })
    })
    
  }
  
  f4()

})();
+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte