In nodejs müssen die Ergebnisse von „E/A“-Vorgängen grundsätzlich in der Rückruffunktion verarbeitet werden. Dies ist eine Rückrufhölle Die Anforderung ist in einer asynchronen Anforderung verschachtelt, und eine asynchrone Anforderung hängt vom Ausführungsergebnis einer anderen ab, wobei Rückrufe verwendet werden, um sich gegenseitig zu verschachteln.
Die Betriebsumgebung dieses Artikels: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.
Eine asynchrone Anfrage ist in einer asynchronen Anfrage verschachtelt, und eine asynchrone Anfrage hängt vom Ausführungsergebnis der anderen ab, wobei Callbacks zur gegenseitigen Verschachtelung verwendet werden
Das größte Highlight von Nodejs ist die ereignisgesteuerte, nicht blockierende E/A Modell, das Nodejs macht Es verfügt über starke Fähigkeiten zur gleichzeitigen Verarbeitung und eignet sich sehr gut zum Schreiben von Netzwerkanwendungen. Die meisten I/O-Vorgänge in Nodejs sind nahezu asynchron, das heißt, die Ergebnisse unserer I/O-Vorgänge müssen grundsätzlich in Rückruffunktionen verarbeitet werden, wie zum Beispiel der folgenden Funktion, die Dateiinhalte liest:
fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); });
Was sollen wir also tun? Wenn wir zwei Dateien lesen und den Inhalt der beiden Dateien zur Verarbeitung zusammenführen? Die meisten Leute, die js für kurze Zeit ausgesetzt waren, könnten Folgendes tun:
fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; fs.readFile('/etc/passwd2', function (err, data2) { if (err) throw err; // 在这里处理data和data2的数据 }); });
Wenn wir uns dann mit mehreren ähnlichen Szenen befassen, nicht wahr? Callback-Funktionen sind Schicht für Schicht verschachtelt. Dies wird oft als Callback-Pyramide oder Callback-Hölle bezeichnet.
Empfohlenes Lernen: „
nodejs-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist die Callback-Hölle von NodeJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!