Comment attendre le clic sur le bouton dans la chaîne de promesses pour suspendre l'exécution ?
P粉170438285
2023-08-15 13:06:43
<p>J'essaie d'enchaîner certains appels backend pour traiter les fichiers, mais l'ensemble du flux de travail nécessite que l'utilisateur fournisse des informations à mi-parcours. Je ne sais pas comment suspendre l'exécution jusqu'à ce que l'utilisateur clique sur un bouton "<code>Continuer</code>" afin qu'il puisse continuer à travailler. </p>
<p>Le processus est donc le suivant :</p>
<ol>
<li>L'utilisateur sélectionne un fichier et déclenche un événement pour télécharger des données. ≪/li>
<li>Je reçois la réponse de l'appel précédent, en ouvrant un modal avec un formulaire. Je dois faire une pause ici. ≪/li>
<li>Remplissez le formulaire et cliquez sur le bouton <code>Continuer</code> ≪/li>
<li>Déclenchez un autre appel pour soumettre plus d’informations à un autre point de terminaison. ≪/li>
</ol>
<p> Chacune de ces étapes implique donc une requête HTTP, utilisant <code>axios</code>, mais j'ai du mal à comprendre comment enchaîner ces promesses. </p>
<p>Maintenant, j'ai un code similaire à : </p>
<pre class="brush:js;toolbar:false;">onFileSelected(event) {
// code ici
axios
.poste("")
.then((res) => {
//Ici, je dois ouvrir la boîte modale et attendre que l'on clique sur le bouton
})
.then(() => {
une autreMéthode();
});
}
≪/pré>
<p><br /></p>
Promise elle-même ne fournit pas de méthode pour suspendre l'exécution, mais vous pouvez utiliser la syntaxe async/wait pour y parvenir. Créez une promesse personnalisée qui se résout lorsque l'utilisateur clique sur le bouton « Continuer ». Comme ça :