Heim >Web-Frontend >js-Tutorial >Sind JavaScript-Rückrufe immer asynchron?
Sind alle JavaScript-Rückrufe asynchron?
Entgegen der landläufigen Meinung sind nicht alle JavaScript-Rückrufe asynchron. Beispielsweise werden Rückrufe, die in Array#sort und String#replace verwendet werden, synchron ausgeführt.
Asynchrone Rückrufe
Asynchrone Rückrufe sind solche, die zu einem späteren Zeitpunkt ausgeführt werden und anderen Code zulassen gleichzeitig laufen zu lassen. Typischerweise beinhalten asynchrone Rückrufe externe Ressourcenanforderungen (z. B. jQuery-AJAX-Aufrufe).
jQuery-AJAX-Aufrufe
jQuery-AJAX-Funktionen können je nach Bedarf sowohl synchron als auch asynchron sein Flag-Einstellung „async“. Allerdings verwenden Browser normalerweise standardmäßig den asynchronen Betrieb für XMLHttpRequest-Objekte (verwendet in jQuery AJAX).
Asynchronität in Node.js
In Node.js wird Asynchronität eingeführt durch spezifische Funktionen wie Datei-E/A, process.nextTick, setTimeout und setInterval. Asynchrone Vorgänge außerhalb dieser Funktionen werden nicht unterstützt.
Erstellen asynchroner Funktionen
Vor ECMAScript 6 basierten asynchrone Funktionen in JavaScript auf vom Host bereitgestellten Funktionen (z. B. nextTick in). Node.js, setTimeout in Browsern).
ECMAScript 6 Promises
ECMAScript 6 führte Promises als Konzept auf Sprachebene für die asynchrone Programmierung ein. An Versprechen angehängte Rückrufe (über then oder Catch) werden immer asynchron aufgerufen, auch wenn das Versprechen bereits erfüllt ist, wenn sie angehängt werden.
Daher besteht die beste Möglichkeit, die asynchrone Rückrufausführung sicherzustellen, darin, Versprechen statt direkt zu verwenden Rückrufe.
Das obige ist der detaillierte Inhalt vonSind JavaScript-Rückrufe immer asynchron?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!