Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann die Ausführung ordnungsgemäß angehalten werden, bis eine asynchrone Funktion abgeschlossen ist?

Mary-Kate Olsen
Freigeben: 2024-10-28 06:33:02
Original
623 Leute haben es durchsucht

How to Gracefully Pause Execution Until an Asynchronous Function Completes?

Richtige Möglichkeit, die Ausführung anzuhalten, bis eine Funktion abgeschlossen ist

Bei der Arbeit mit mehreren asynchronen Funktionen ist es oft notwendig, auf den Abschluss einer Funktion zu warten, bevor eine andere ausgeführt wird. Lassen Sie uns eine Lösung untersuchen und elegantere Ansätze erkunden.

Originallösung

Die bereitgestellte Lösung verwendet einen Abfragemechanismus mit setTimeout, um kontinuierlich zu überprüfen, ob die erste Funktion abgeschlossen wurde:

<code class="javascript">var isPaused = false;

function firstFunction() {
    isPaused = true;
    // Do something
    isPaused = false;
}

function secondFunction() {
    firstFunction();
    function waitForIt() {
        if (isPaused) {
            setTimeout(waitForIt, 100);
        } else {
            // Do something else
        }
    }
}</code>
Nach dem Login kopieren

Obwohl diese Methode funktionieren kann, ist sie aufgrund ihrer Abhängigkeit von Umfragen nicht optimal.

Elegante Ansätze

Rückruffunktionen:

Eine gängige Praxis besteht darin, Rückruffunktionen zu verwenden, um die asynchrone Vervollständigung zu handhaben:

<code class="javascript">function firstFunction(callback) {
    // Do asynchronous work
    callback();
}

function secondFunction() {
    firstFunction(() => {
        console.log("huzzah, I'm done!");
    });
}</code>
Nach dem Login kopieren

Wenn die erste Funktion beendet ist, ruft sie die Rückruffunktion auf, sodass die zweite Funktion weiter ausgeführt werden kann.

Pfeilfunktionen:

Die Verwendung von Pfeilfunktionen vereinfacht diesen Ansatz:

<code class="javascript">firstFunction(() => console.log('huzzah, I'm done!'))</code>
Nach dem Login kopieren

Async/Await:

In modernem JavaScript bietet async/await eine besser lesbare und Effiziente Möglichkeit, die Ausführung anzuhalten:

<code class="javascript">const secondFunction = async () => {
  const result = await firstFunction()
  // Do something else here after firstFunction completes
}</code>
Nach dem Login kopieren

Fazit

Während Polling verwendet werden kann, um auf den Funktionsabschluss zu warten, bieten Rückruffunktionen, Pfeilfunktionen und Async/Await elegantere und leistungsfähigere Lösungen. Wählen Sie den Ansatz, der Ihren spezifischen Anforderungen und Ihrer JavaScript-Umgebung am besten entspricht.

Das obige ist der detaillierte Inhalt vonWie kann die Ausführung ordnungsgemäß angehalten werden, bis eine asynchrone Funktion abgeschlossen ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!