Der Unterschied zwischen Knotensynchronisation und asynchroner Synchronisation besteht darin, dass das Programm von oben nach unten ausgeführt wird und der nächste Schritt erst ausgeführt werden kann, nachdem der vorherige Schritt ausgeführt wurde. Asynchron bedeutet, dass nicht auf den oben genannten Schritt gewartet werden muss Beenden Sie die Ausführung, bevor Sie die folgenden Vorgänge ausführen. Asynchrone Programmierung kann mithilfe von Rückrufen implementiert werden, bedeutet jedoch nicht, dass das Programm nach dem Rückruf asynchron ist.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.
Synchronisierung bedeutet, dass das Programm von oben nach unten ausgeführt wird, während asynchron bedeutet, dass nicht auf den Abschluss der oben genannten Vorgänge gewartet werden muss, bevor die folgenden Vorgänge ausgeführt werden. Die asynchrone Programmierung basiert auf Rückrufen, es kann jedoch nicht gesagt werden, dass das Programm nach der Verwendung von Rückrufen asynchron wird.
Synchronisation auf Englisch: sync (Synchronisation)
Asynchrones Englisch: async (asynchron)
Synchronisations-API: Erst nachdem die Ausführung der aktuellen API abgeschlossen ist, kann die nächste API weiter ausgeführt werden
console.log('before'); console.log('after');
Asynchron API: Die aktuelle API-Ausführung blockiert nicht die Ausführung von nachfolgendem Code. aber die asynchrone API kann nicht (es scheint, dass Sie keine Ergebnisse erhalten können, selbst wenn Sie return in eine asynchrone API schreiben? )
console.log('before'); setTimeout( () => { console.log('last'); }, 2000); console.log('after');
Rückruffunktion
Definieren Sie Ihre eigene Funktion und lassen Sie sie von anderen aufrufen.// 异步 function getMsg () { setTimeout(function () { return { msg: 'Hello Node.js' } }, 2000); } const msg = getMsg (); //函数没有写return 默认是返回 undefined cnsole.log(msg); // 输出的是 undefined,因为定时器还没执行完就执行了输出
Die asynchrone API wird nicht ausgeführt Warten Sie, bis die API-Ausführung abgeschlossen ist, bevor Sie den Ausführungscode abbrechen
Analyse der CodeausführungssequenzJavaScript ist in einen synchronen Codeausführungsbereich und einen asynchronen Codeausführungsbereich unterteilt, zwischen denen eine Rückruffunktionswarteschlangenverbindung besteht. Zuerst führt JavaScript den gesamten Inhalt des synchronen Codebereichs aus, geht dann zum asynchronen Codebereich, um den Code auszuführen, sucht den Codeblock, der im asynchronen Codebereich ausgeführt wurde, und findet sofort die entsprechende Rückruffunktion Um die asynchrone API in derNode.js
read-Datei-API auszuführen, gibt es eine Rückruffunktion.Die Event-Listening-API verfügt auch über Rückruffunktionen. (Die Ereignisverarbeitungsfunktion ist die Rückruffunktion und die Ereignisüberwachungs-API ist die asynchrone API.)
Wenn die Ausführung des Codes hinter der asynchronen API vom Ausführungsergebnis der aktuellen asynchronen API abhängt, die asynchrone API jedoch tatsächlich davon abhängt Wenn der nachfolgende Code ausgeführt wird, wird das Ergebnis nicht zurückgegeben. Wie kann dieses Problem gelöst werden? Zum Beispiel gibt es eine Anforderung: A-Datei, B-Datei, C-Datei nacheinander lesen (A, dann B, dann C lesen, kann nicht gleichzeitig gelesen werden) Wenn die obige Anforderung erfüllt ist, wird sie es tun führe zur Operation zum Lesen von B. Fügen Sie es in die Rückruffunktion von A ein, und die Operation zum Lesen von C wird in die Rückruffunktion von B eingefügt, was zu vielen Verschachtelungsebenen führt (Rückrufhölle)// getData函数定义 function getData (callback) {} // getData函数调用 getData (() => {}); /*例子------------------*/ function getMsg (callback) { setTimeout(function () { callback ({ msg: 'Hello Node.js' }) }, 2000); } getMsg (function (msg) { console.log(msg); });
nodejs Video Tutorial
"Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Knotensynchronisation und Asynchronität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!