Vor kurzem schaue ich mir Express an und habe es überall überall gesehen, indem ich Callback -Funktionen als Parameter verwende. Wenn dieses Konzept nicht verstanden werden kann, ist der Code von NodeJS und Express sehr verwirrt. Zum Beispiel:
Die Codekopie lautet wie folgt:
app.use (function (req, res, next) {
var err = neuer Fehler ('nicht gefunden');
err.status = 404;
Weiter (arr);
});
App ist ein Objekt, verwendet, verwendet eine Methode, und der Parameter der Methode ist eine anonyme Funktion mit Parametern, und die Funktionsstelle wird direkt später angegeben. Wie verstehen Sie diesen Code? Lassen Sie uns zunächst das Konzept der Rückruffunktionen verstehen.
Zunächst müssen wir verstehen, dass in JS Funktionen auch Objekte sind, die Variablen zugewiesen und als Parameter in der Parameterliste der Funktion platziert werden können. Zum Beispiel:
Die Codekopie lautet wie folgt:
var dosomething = Funktion (a, b)
{
Return a + b;
}
Dieser Code bedeutet, eine anonyme Funktion zu definieren. Mit Ausnahme von keinen Namen unterscheidet sich diese anonyme Funktion nicht von einer gewöhnlichen Funktion. Zuweisen Sie dann die anonyme Funktion der variablen Dosen. Als nächstes rufen wir an:
Die Codekopie lautet wie folgt:
console.log (dosometheting (2,3));
Dies gibt 5 aus.
Die Rückruffunktion wird in die Parameterliste einer anderen Funktion (z. B. übergeordnet) platziert, als Parameter an den übergeordneten und an einer bestimmten Position in der übergeordneten Funktionsbehörde ausgeführt. Um es in Abstraktion zu setzen, schauen Sie sich das Beispiel an:
Die Codekopie lautet wie folgt:
// Um das Konzept des Rückrufs zu veranschaulichen
var doit = Funktion (Rückruf)
{
var a = 1,
B = 2,
C = 3;
var t = callback (a, b, c);
return t + 10;
};
var d = doit (Funktion (x, y, z) {
return (x+y+z);
});
console.log (d);
Definieren Sie zuerst die DOIT -Funktion, und es gibt einen Parameter -Rückruf. Dieser Rückruf ist die Rückruffunktion, und der Name kann willkürlich genommen werden. Wenn Sie sich die Funktionskörper betrachten, definieren Sie zunächst drei Variablen A, B und c. Rufen Sie dann die Rückruffunktion auf. Schließlich wird ein Wert zurückgegeben.
Das Folgende ist die DOIT -Funktion. Es sollte beachtet werden, dass Callback, wenn Sie Doit gerade jetzt definiert haben, nicht definiert wurde, sodass Sie nicht wussten, wofür Callback ist. Dies ist tatsächlich leicht zu verstehen. Wenn wir eine Funktion definieren, geben die Parameter nur einen Namen an, z. B. A unter Verwendung eines im Funktionskörpers, aber der gesamte Prozess weiß nicht, was A ist. Nur wenn die Funktion aufgerufen wird, wird angegeben, z. B. 2. Rückblick, wenn wir DOIT aufrufen, müssen wir angeben, welcher Rückruf ist. Wie Sie sehen können, vervollständigt diese Funktion eine Summenfunktion.
Der Ausführungsprozess des obigen Codes lautet:
Rufen Sie die DOIT -Funktion auf, der Parameter ist eine anonyme Funktion; Geben Sie den Funktionsgremium von Doit ein, definieren Sie zuerst A, B, C und führen Sie dann die anonyme Funktion gerade jetzt aus.
Zurück zum ursprünglichen Beispiel, App.Us (...) ist ein Funktionsaufruf. Wir können uns vorstellen, dass zuvor eine Verwendungsmethode definiert worden sein muss, aber sie wird hier nicht gegeben. Durch den Vergleich dieser beiden Beispiele können Sie sie sofort verstehen.
Bei Verwendung von NodeJS und Express ist es uns unmöglich, die Funktionsdefinition jeder Methode oder Funktion zu finden, um einen Blick darauf zu werfen. Wissen Sie also, welche Parameter in dieser Definition an einen Rückruf übergeben werden. Wenn wir dann eine Methode oder Funktion aufrufen, definieren wir anonyme Funktionen in den Parametern, um bestimmte Funktionen zu erfüllen.
Über!