Ich kämpfe mit node.js asynchrone Welt, ich bin noob in node.js. Ich verstehe nicht, wie man den grundlegenden Programmablauf steuert. Ich verwende das Paket iotdb-arp, um IP-Adresse und MAC-Adresse im Netzwerk zu drucken. Ich muss diesen Code ausführen, Funktionsscan ausführen, warten, bis die Variable arr voll ist, dann diese arr und die Endnachricht ausdrucken. Ich weiß, dass ich Rückrufe verwenden sollte, aber ich bin wirklich verloren. Könnte mir jemand auf die richtige Richtung zeigen, wie man die Dinge in der richtigen Reihenfolge laufen lässt? Jetzt, wenn ich ausführe, dass es "[+] Programmanfang" druckt, dann druckt es "IP dieser Maschine ist: 192.168.1.2" dann wird Scan ausgeführt, aber Programm ist gleichzeitig am Ende, arr ist leer, weil Scan noch läuft. Hier ist mein Code:Node.js Dinge in der richtigen Reihenfolge in grundlegenden Code
console.log("[+] Program start");
var ip = require('ip');
var browser = require('iotdb-arp');
var arr = [];
var myIp = ip.address();
console.log("IP of this machine is : " + myIp.toString());
function scan(){
browser.browser({},function(error, data) {
if (error) {
console.log("#", error);
} else if (data) {
console.log(data);
arr.push(data);
} else {
}
});
}
/*function callback(){
console.log(arr);
console.log("[+] Program End");
}*/
scan();
console.log(arr); // Here in the end i need print arr
console.log("[!] Program End"); // Here I need print message "[+] Program End"
Sie können das nicht tun. Sie müssen Rückrufe verwenden. – SLaks