Ich habe kürzlich Express gesehen und überall die Verwendung von Rückruffunktionen gesehen, die Funktionen als Parameter übernehmen. Wenn Sie dieses Konzept nicht verstehen, wird der Code von NodeJS und Express ein Chaos sein. Zum Beispiel:
Dadurch wird 5 ausgegeben.
Die Rückruffunktion wird in die Parameterliste einer anderen Funktion (z. B. einer übergeordneten Funktion) eingefügt, als Parameter an diese übergeordnete Funktion übergeben und dann irgendwo im übergeordneten Funktionskörper ausgeführt. Es ist abstrakt, schauen wir uns ein Beispiel an:
Die Doit-Funktion wird unten aufgerufen. Es ist zu beachten, dass bei der Definition von doit gerade kein Rückruf definiert war, sodass ich nicht wusste, wofür der Rückruf verwendet wurde. Dies ist eigentlich leicht zu verstehen. Wenn wir eine Funktion definieren, wird dem Parameter nur ein Name zugewiesen, z. B. a, und a wird im Funktionskörper verwendet, aber der gesamte Prozess weiß nicht, was a ist Funktion Geben Sie dann nur den spezifischen Wert von a an, z. B. 2. Rückblickend müssen wir beim Aufruf von doit angeben, was ein Rückruf ist. Wie Sie sehen, vervollständigt diese Funktion eine Summenfunktion.
Der Ausführungsprozess des obigen Codes ist:
Rufen Sie die Funktion doit auf. Der Parameter ist eine anonyme Funktion. Geben Sie den Funktionskörper von doit ein, definieren Sie zuerst a, b, c und führen Sie dann gerade die anonyme Funktion aus. Die Parameter sind a, b, c und return a t und schließlich return A t 10 ergibt d.
Zurück zum ursprünglichen Beispiel: app.use(...) ist ein Funktionsaufruf. Wir können uns vorstellen, dass eine Verwendungsmethode zuvor definiert worden sein muss, aber sie wird hier nicht angegeben. Wenn Sie diese beiden Beispiele vergleichen, können Sie es sofort verstehen.
Bei der Verwendung von NodeJS und Express ist es für uns unmöglich, die Funktionsdefinition jeder Methode oder Funktion zu finden und einen Blick darauf zu werfen. Sie müssen also wissen, welche Parameter in dieser Definition an den Rückruf übergeben werden. Wenn wir dann eine Methode oder Funktion aufrufen, definieren wir selbst anonyme Funktionen in den Parametern, um bestimmte Funktionen abzuschließen.
Vorbei!