Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich dafür sorgen, dass sich asynchrone Funktionen in JavaScript synchron verhalten?

Susan Sarandon
Freigeben: 2024-11-18 03:31:02
Original
756 Leute haben es durchsucht

How Can I Make Asynchronous Functions Behave Synchronously in JavaScript?

Synchroner Aufruf asynchroner Funktionen

In einigen spezifischen Szenarien kann es notwendig sein, asynchrone Aufrufe zu erzwingen, sich innerhalb einer synchronen Codebasis synchron zu verhalten. Obwohl dies im Allgemeinen nicht als bewährte Methode gilt, können Sie dies wie folgt erreichen:

Blockieren mit Polling

Zunächst ist es wichtig zu beachten, dass der JavaScript-Ausführungsthread tatsächlich ohne Polling blockiert wird Das Einfrieren der Benutzeroberfläche ist nicht möglich. Es ist jedoch möglich, eine Blockierung zu simulieren, indem regelmäßig überprüft wird, ob der asynchrone Vorgang abgeschlossen ist.

function doSomething() {
  var data;

  function callback(d) {
    data = d;
  }

  myAsynchronousCall(param1, callback);

  // Poll until the data is set by the callback
  while (!data) {
    // Sleep for a short duration to avoid excessive polling
  }

  return data;
}
Nach dem Login kopieren

Dieser Ansatz blockiert effektiv die aufrufende Funktion, bis der Rückruf aufgerufen wird. Es sind jedoch häufige Abfragen erforderlich, die ineffizient sein können.

Rückrufbasierter Ansatz

Eine sauberere und effizientere Lösung besteht darin, eine Rückruffunktion an die ursprüngliche asynchrone Funktion zu übergeben call.

function doSomething(callback) {
  myAsynchronousCall(param1, function(data) {
    callback(data);
  });
}
Nach dem Login kopieren

Die modifizierte doSomething()-Funktion akzeptiert nun einen Callback als Argument, der mit den Daten aufgerufen wird vom asynchronen Aufruf zurückgegeben.

doSomething(function(data) {
  console.log(data);
});
Nach dem Login kopieren

Diese Methode ermöglicht die nahtlose Verarbeitung asynchroner Aufrufe innerhalb des synchronen Codes, ohne Blockierung oder übermäßige Abfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich dafür sorgen, dass sich asynchrone Funktionen in JavaScript synchron verhalten?. 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