0
votes

Réagissez de stockage de firebase natif async / attente ne pas attendre

   imageUrl='';
   getImage(email).then((url) => { 
      imageUrl = url
      console.log('imageUrl1:',imageUrl);
   })

   console.log('imageUrl2:',imageUrl);

0 commentaires

3 Réponses :


0
votes
   getImage(email).then((url) => { 
      imageUrl = url
      console.log('imageUrl1:',imageUrl);
   })
.then will always run after the getImage() is executed. That would mean your imageUrl2 will run first in this case.

0 commentaires

0
votes

Ce que vous voyez est attendu dans JavaScript et n'a rien à voir avec le SDK Firebase que vous utilisez. En JavaScript, des fonctions qui renvoient une promesse sont asynchrones et reviendront immédiatement, avant que la promesse soit remplie ou rejetée. Vous devriez savoir que puis renvoie également une promesse asynchrone. Il ne bloque pas l'exécution de votre code ni attendre que la promesse devienne résolue. Votre code continuera à exécuter après tout puis ou attrape .

Dans votre cas spécifique, votre deuxième ligne de journalisation imprimera immédiatement avec la valeur de chaîne vide initiale de imageURL . La fonction de rappel que vous fournissez à puis sera appelée quelque temps ultérieurement , après la promesse renvoyée par getImage est remplie avec une valeur.


0 commentaires

0
votes

Essayez ceci xxx


2 commentaires

Ne travaillez pas -> Impossible d'utiliser le mot-clé «Await» en dehors d'une fonction Async. Merci


c'est juste le parent doit être une fonction ASYNC qu'il doit être à l'intérieur d'une fonction asynchrone