Fast alle Orte im Knoten, an denen Rückruffunktionen verwendet werden, sind asynchron. Der Code hinter den Rückruffunktionen wird wahrscheinlich zuerst ausgeführt als der Code in den Rückruffunktionen, insbesondere in den Datenbankvorgängen. Natürlich bietet Node auch Funktionen für synchrone Versionen wie Dateioperationen. fs.ReadFilesync () ist die synchrone Version von fs.ReadFile ().
Die Frage ist also, ist für Each () asynchron? Logischerweise sollte es asynchron sein, wenn Synchronisation nicht hinzugefügt wird.
Die Codekopie lautet wie folgt:
var arr = ['a', 'b', 'c'];
var str = '123';
arr.foreach (Funktion (Element) {
str += item;
while (wahr) {}; // benutze eine tote Schleife, um sie zu stecken ~~
});
console.log (str);
Führen Sie den oben genannten Code aus und er wird ohne Ausgabe festgefahren. .
Also, fürCh () im Knoten ist synchronisiert! !
Als ich den Knoten zum ersten Mal verwendet habe, habe ich dieses Problem nicht in Betracht gezogen, also schrieb ich es synchron. Ich dachte plötzlich, dass ich nach dem Test schockiert war und dachte, der vorherige Code sei falsch geschrieben worden.
Wenn in einigen Fällen asynchron verarbeitet werden muss, googeln Sie es und es gibt einen Node-Array, können Sie es versuchen ~~ Portal: https://github.com/cfsghost/node-array
Diese Arbeit wurde von http://www.cnblogs.com/imyzf erstellt