我在node.js異步世界中苦苦掙扎,我在node.js中選擇noob。我不明白如何驅動基本的程序流程。我使用軟件包iotdb-arp在網絡上打印IP地址和MAC地址。我需要運行這段代碼,執行函數掃描,等到變量arr已滿,然後打印該arr並結束消息。我知道我應該使用回調,但我真的很失落。有人能指引我正確的方向,如何按正確的順序運行?現在當我執行它打印「[+]程序啓動」,然後它打印出「本機的IP爲:192.168.1.2」,然後執行掃描,但程序同時結束,因爲掃描仍在運行,所以arr爲空。這裏是我的代碼:Node.js在基本代碼中以正確的順序驅動事物
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"
你不能那樣做。你需要使用回調。 – SLaks