Wie kann ich auf einen Button-Klick in der Promise-Kette warten, um die Ausführung anzuhalten?
P粉170438285
2023-08-15 13:06:43
<p>Ich versuche, einige Back-End-Aufrufe zu verketten, um Dateien zu verarbeiten, aber der gesamte Workflow erfordert, dass der Benutzer nach der Hälfte des Vorgangs Eingaben macht. Ich bin mir nicht sicher, wie ich die Ausführung anhalten soll, bis der Benutzer auf die Schaltfläche „<code>Weiter</code>“ klickt, damit die Ausführung fortgesetzt werden kann. </p>
<p>Der Prozess ist also wie folgt:</p>
<ol>
<li>Der Benutzer wählt eine Datei aus und löst ein Ereignis zum Hochladen einiger Daten aus. </li>
<li>Ich erhalte die Antwort vom vorherigen Aufruf und öffne ein Modal mit einem Formular. Ich muss hier eine Pause machen. </li>
<li>Füllen Sie das Formular aus und klicken Sie auf die Schaltfläche <code>Weiter</code>, um die Versprechenskette fortzusetzen. </li>
<li>Lösen Sie einen weiteren Aufruf aus, um weitere Informationen an einen anderen Endpunkt zu übermitteln. </li>
</ol>
<p>Jeder dieser Schritte beinhaltet also eine HTTP-Anfrage unter Verwendung von <code>axios</code>, aber ich habe Probleme zu verstehen, wie diese Versprechen verkettet werden sollen. </p>
<p>Jetzt habe ich einen ähnlichen Code wie: </p>
<pre class="brush:js;toolbar:false;">onFileSelected(event) {
// Code hier
Axios
.Post("")
.then((res) => {
//Hier muss ich das modale Feld öffnen und darauf warten, dass auf die Schaltfläche geklickt wird
})
.then(() => {
eine andere Methode();
});
}
</pre>
<p><br /></p>
Promise本身并没有提供暂停执行的方法,但你可以使用async/await语法来实现。创建一个自定义的Promise,在用户点击"Continue"按钮时解析。就像这样: