Asynchrones Arbeiten mit CoffeeScript

Asynchrone Operationen sind ein wichtiger Bestandteil der modernen Programmierlogik, da sie es uns ermöglichen, Prozesse zu etablieren, die nicht voneinander abhängig sind und “simultan” ausgeführt werden. Wir sagen dies, da sie oft nicht parallel ablaufen, aber verschwinden Wird ausgeführt, wenn ein Prozess blockiert ist und auf eine Antwort wartet. In vielen Fällen geschieht dies in Tausendstelsekunden und vermittelt das Gefühl, dass alles zur gleichen Zeit geschieht.

Die Revolution von JavaScript hat die Verarbeitung von asynchronen Anweisungen heutzutage sehr populär gemacht. Mit Tools wie Node.js haben wir die Möglichkeit, Anweisungen auf diese Weise auszuführen, wenn es sich bei anderen Servern anderer Technologien lediglich um synchrone Prozesse handelt.

Was sind asynchrone Operationen?

Das Konzept dahinter ist sehr einfach. Es handelt sich um Vorgänge, die die Verwendung oder den Zugriff auf den Verarbeitungs-Thread während der Ausführung nicht blockieren. Dieses Konzept ist eng mit dem verwandt, was wir zu Beginn des Lernprogramms erklärt haben, als der Prozess angehalten wurde und Wenn Sie einige Zyklen des Prozessors freigeben, werden andere Aufgaben in der Warteschlange ausgeführt, anstatt darauf zu warten, dass der Prozess ausgeführt wird. Auf diese Weise werden alle von Ihnen gestellten Anforderungen erfüllt.

Dies ist sehr nützlich, weil wir dem Benutzer ein echtes Zeitgefühl vermitteln, aber auch, weil wir die Wartezeiten der ausgeführten Prozesse besser ausnutzen und den Prozessor optimal nutzen.

Wenn asynchrone Operationen so nützlich sind, warum werden sie nicht immer verwendet?

In diesem Moment, nachdem Sie die vorherige Erklärung gelesen haben, die so optimistisch klingt, sollten Sie sich fragen, die Antwort ist sehr einfach. Diese Art der Implementierung erhöht die Komplexität, wenn Sie in der Lage sind, die verschiedenen Algorithmen und Abläufe unserer Programme zu entwickeln.

Wir werden in Situationen geraten, in denen wir komplexere und vollständigere Logiken entwickeln müssen, die angeben, welche Prozesse warten sollen, wie sie ausgeführt werden sollen usw. Dies bedeutet, dass nicht alle Anwendungen diese Art der Prozessverwaltung erfordern. Wenn wir jedoch bereits mit Node.js oder JavaScript im Allgemeinen arbeiten, ist dies keine Entscheidung, die wir treffen können. In diesen Fällen müssen wir die Asynchronität auf natürliche Weise behandeln.

Voraussetzungen für die Entwicklung des Tutorials
In diesem Tutorial werden wir einige praktische Beispiele vorstellen. Daher müssen wir in unserem Team CoffeeScript installiert und konfiguriert haben. Außerdem benötigen wir einen Texteditor wie Sublime oder NotePad ++, damit wir unseren Code hervorgehoben anzeigen können. Schließlich müssen wir sicherstellen, dass wir über ausreichende Berechtigungen zum Schreiben von Dateien und Ausführen von CoffeeScript in unserer Umgebung verfügen. Dies ist hauptsächlich in Linux- Umgebungen der Fall . Es empfiehlt sich jedoch, dies zu berücksichtigen, um Probleme außerhalb von CoffeeScript zu vermeiden.

Synchronisation in CoffeeScript erstellen

Wie wir zuvor in JavaScript und daher in CoffeeScript erklärt haben, sind die Vorgänge asynchron. Deshalb müssen wir für viele Aufgaben, die wir auf das Ergebnis anderer warten müssen, angeben, von wem sie warten sollen.

Rückruf
Wenn das letzte, was auftritt, wenn die Zahl des Rückrufs erscheint, was nichts weiter ist als zu einer Operation zu sagen, die ausgeführt werden muss, wenn eine andere endet, wird der Punkt, an dem eine Operation endet und eine andere aufrufen kann, als Rückruf bezeichnet .

Dieses Konzept ist sehr einfach, sobald wir es verstanden haben, aber es ist schwierig, es zu verstehen, wenn wir immer in synchronen Umgebungen gearbeitet haben. Das folgende Beispiel zeigt, wie eine Funktion im Rückruf einer anderen aufgerufen wird .

See also  So setzen Sie Honor 10 Lite Hard Reset zurück

Angenommen, wir haben einen Prozess zum Backen eines Kuchens, dann würden wir drei grundlegende Funktionen ausführen:

 bakePastel () cutPastel () makeCream () 

Aus dieser Perspektive einer Handlung der realen Welt können wir feststellen, dass es etwas gibt, das wir gleichzeitig mit dem Backen des Kuchens tun können, und dies ist, um die Creme daraus zu machen, aber die andere Handlung kann nur ausgeführt werden, wenn wir den gebackenen Kuchen haben ist es zu schneiden.

Dann haben wir bereits festgelegt, was passieren soll und in welcher Reihenfolge, sehen wir uns dann den CoffeeScript- Code an:

 bakePastel -> cutPastel () makeCream () 

Wenn wir unsere .coffee-Datei kompilieren, wird sie in den JavaScript- Code übersetzt, den wir in der folgenden Abbildung sehen können:

coffeescript-trabajo-asincronico.jpg

Wir sehen, dass die Entwicklung in CoffeeScript viel einfacher ist, aber wenn wir das Ergebnis in JavaScript sehen , können wir einige Dinge feststellen, dass der Rückruf nur eine anonyme Funktion ist, die der Methode hinzugefügt wird, die von der Funktion abhängt, in die wir einfügen möchten synchroner Modus.

Die andere Sache, die wir bemerken, ist, dass wenn zwei Funktionen auf der gleichen Ebene sind, sie von Natur aus asynchron sind, daher sollten wir uns nur darauf konzentrieren, die Funktionen festzulegen, die nacheinander ausgeführt werden müssen.

Asynchronität in HTTP

Eine der Stellen, an denen Asynchronität am häufigsten verwendet wird, sind HTTP- Anforderungen, da hier ein perfektes Beispiel dafür vorliegt, wann Prozesse nicht davon abhängen, dass andere abgeschlossen werden, z. B. wenn ein Web geladen wird und mehrere Ressourcen geladen werden müssen Diese werden geladen, wenn ihre Quellen antworten, und wenn es eine Ressource gibt, die nicht aufgeladen wird, hindert dies andere nicht daran, dies zu tun.

See also  So sperren oder entsperren Sie das Chromebook mit der PIN-Nummer

Nach der gleichen Philosophie werden auch APIs und Webservices erstellt. Hier können wir dann von unserer Anwendung aus mehrere Anfragen stellen, ohne dass eine vor der anderen steht, sofern dies unserer Logik entspricht.

Alternativen im asynchronen Handling

Wenn wir groß denken, gibt es einen Punkt, an dem wir sehen, wie wir einen Rückruf für jeden Prozess bearbeiten , der von einem anderen abhängt, was sehr komplex zu warten ist, und obwohl CoffeeScript dabei hilft, eine bessere Lesbarkeit aufrechtzuerhalten, wird es uns nicht hindern, wenn wir Tausende von Anrufen haben weniger schwierig zu debuggen sein. Hier kommen verschiedene Bibliotheken ins Spiel, die uns dabei helfen, die gleiche Funktionalität beizubehalten, sie jedoch übersichtlicher zu gestalten und die Verwaltung unserer Prozesse und Funktionen zu vereinfachen.

Versprechen
Die erste Lösung, die wir sehen werden, ist Versprechen . Dieser Ansatz ist eine Möglichkeit, Dinge so zu tun, dass statt eines Rückrufs oder Rückrufs ein “Versprechen” aufgerufen wird, dh ein Versprechen , das uns dazu bringt, das zu haben Ausführung einer Funktion oder eines späteren Codes.

Da dieses Verhalten nicht systemeigen ist, wird es im Allgemeinen mit zwei externen Bibliotheken verwendet. Die erste ist ” reqwest.js”. Dies erleichtert die Verwendung von HTTP- Anforderungen für andere Ressourcen, die Sie unter dem folgenden Link finden .

coffeescript-trabajo-asincronico-2.jpg

Die andere Bibliothek ist rsvp.js , mit deren Hilfe wir Promises besser bearbeiten können , sobald sie von unserer Anwendung generiert wurden. Diese Bibliothek finden Sie hier .

coffeescript-trabajo-asincronico-3.jpg

Dies zeigt uns, dass wir es uns leisten können, Bibliotheken zu implementieren, die uns helfen, unsere Codierungsprozesse zu verbessern und uns so Entwicklungsstunden zu sparen, sobald wir die Grundlagen der asynchronen Programmierung kennen.

See also  PostgreSQL - Abfrageoptimierung

IcedCoffeeScript

Die Arbeit mit asynchronen Elementen ist heutzutage so wichtig, dass wir sogar eine Variante von CoffeeScript haben , die sich darauf konzentriert, uns mehr Werkzeuge für die Verwaltung dieser Art von Programmierung zu geben.

IcedCoffeeScript muss über npm mit folgendem Befehl installiert werden:

 npm installiere iced-coffee-script 

Es dauert einige Sekunden, bis Sie uns am Ende Ihrer Installation Folgendes auf der Konsole anzeigen sollten:

coffeescript-trabajo-asincronico-4.jpg

Mit diesem Tool können wir das Verhalten unserer Funktionen mit den Schlüsselwörtern wait und defer benutzerfreundlicher gestalten . Der erste besteht darin, dass ein asynchroner Block gestartet wird, und defer gibt an, dass unsere Anwendung warten muss, bis der Warteblock fertig ausgeführt ist, um mit dem nächsten Teil des Programms fortzufahren.

Das Interessante ist nicht dieses Verhalten, da wir in gewisser Weise Ähnlichkeiten mit dem Rückruf haben, wenn nicht, dass unsere Anwendung innerhalb eines Warteblocks synchron ausgeführt wird, was uns einen vertrauten Hintergrund für Leute gibt, die aus alten Sprachen wie PHP stammen das heißt, zeilenweise die Anweisungen zu lesen, die wir ihnen geben.

CoffeeScript hilft uns, diese Konzepte zu verstehen, da seine Syntax viel einfacher ist als JavaScript , und wenn wir die Übersetzung in letzteres generieren, lernen wir auch, wie man es auf herkömmliche Weise macht. Es ist wichtig, die offizielle Dokumentation zu lesen und viele Beispiele zu nennen, damit all diese Konzepte klar und beherrscht sind, um bessere Anwendungen zu erzielen.

Damit schließen wir dieses Tutorial ab, da wir sehen, dass die Welt der neuen Programmiertrends sehr interessant ist und viele neue Konzepte hat, die vielleicht diejenigen, die aus früheren Sprachen stammen, nicht sehr einfach zu verstehen sind, aber sobald sie verstanden sind, sind wir sicher wir werden sagen, wie wir ohne sie leben könnten.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *