dedlfix: Promises & Callbacks

Beitrag lesen

Tach!

was ist der Unterschied zwischen callbacks und promisses?

Ein Callback ist eine Funktion(sreferenz), die man übergibt und die aufgerufen werden soll. Ein Callback kann zum Beispiel die Vergleichsfunktion sein, die man Array.sort() oder .find() etc. übergeben kann. Da tut ein Callback Teile der zu erledigenden Aufgabe.

Auch Promises verwenden Callbacks. Promises sind ein Programmiermuster, das für asynchrone Abläufe entwickelt wurde. Die Callbacks werden jedoch erst aufgerufen, wenn die Aufgabe erledigt oder mit Fehler abgebrochen wurde.

Während nach einem Array.sort() oder .find() die Verarbeitung synchron in der nächsten Zeile weiterläuft, muss man bei den Promises die darauf aufbauende Arbeit innerhalb der Callbacks stattfinden lassen.

Wie setze ich es ein, wenn es sinnvoll ist?

So wie es dokumentiert ist.

Vorgeschichte: Ich will einen Verbindung und Handling für eine Applikation in Nodejs TypeScript basteln. Wenn ich über MongoDB Collections Daten auslese klappt's nicht. Ich vermute mal das der Zugriff auf ein anderes Programm welches Daten für das aufrufende Skript bereithält und sie übergibt, soviel Zeit in Anspruch nimmt, sodass das Script womit ich dieses Callback aufgerufen habe, einfach weiter läuft ohne eine Antwort zu erwarten.

Kenn ich nicht, aber wenn die Abfragefunktion asynchron abläuft, kommst du nicht umhin, dich im entsprechenden "Erledigt"-Callback einzunisten, um Folgeaufgaben zu erledigen. Das ist nicht anders als beispielsweise bei Ajax-Aufrufen. Nach dem .send() ist noch kein Ergebnis da, das gibts erst in der in onreadystatechange übergebenen Callback-Funktion.

dedlfix.