Modifié pour ajouter une question en bas : Actuellement, cela fonctionne bien, c'est juste qu'il ne fonctionne pas de manière asynchrone (je pense que c'est pourquoi l'attente asynchrone essaie).
Ma question est de savoir comment rendre le processus de soumission asynchrone afin que je ne puisse effectuer une action qu'après avoir téléchargé les informations (dans ce cas, en invitant l'utilisateur à choisir les prochaines étapes préférées).
const handleSubmit = async () => { try { if (image.value) { await uploadImage(image.value); <--I thought this was asynchronous, but I tested and I don't think it is. } const colRef = collection(db, "collection"); //I thought the below was asynchronous, but it's not await addDoc(colRef, { data: data.value <--placeholder }); }); } catch { } //code to run after addDoc is done, but it runs immediately $q.dialog({ [content] }) };
Mise à jour : j'ai modifié la fonction addDoc avec la fonction .then et cela semble fonctionner. Le problème actuel est que je ne peux pas terminer la fonction uploadImage avant d'exécuter la fonction addDoc.
C'est ma tentative de valider la fonction uploadImage, dont je sais qu'elle est bâclée et erronée :
if (image.value) { return new Promise((resolve, reject) => { const newImage = uploadImage(image.value); resolve(newImage); }); } else { console.log("error"); }
Seulement si votre fonction
uploadImage()
和addDoc()
renvoie une Promesse JavaScript.Voir cet articlede nodejs.dev pour plus d'informations sur async/await.