2011-08-05 52 views
0

Get local IP address in node.js相關的問題無法擺脫執行。局部變量傳遞IP地址?

我可以要求一點幫助嗎?

在使用的這個例子中,

getNetworkIP(function (error, ip) { 
console.log(ip); 
if (error) { 
    console.log('error:', error); 
}}, false); 

怎麼可能得到回調外的IP值?例如將其用於連接等。我試圖返回它,導出它,傳遞它,但是這些方法都不起作用。請幫助我,我要去精神!

謝謝!

P.S .:這段代碼對我來說真的很有用,多瞭解一點。我真的很新鮮。感謝百萬分享它。

+0

答案不是發佈後續問題的方式。您應該創建一個新問題並鏈接到此。在任何情況下,這個調用都是異步的,這意味着下一個語句將在調用完成之前運行,所以除非您在回調中設置了一個全局變量,否則不能訪問其他地方的IP - Juan Mendes –

+0

對不起,您的回答是一個問題。我會問一個新的問題和鏈接。在這種情況下,你可以舉一個設置局部變量的例子嗎?我試着說,當我打印時它說undefined或null。在我看來,脫離exec函數是不可能的。謝謝 –

回答

0

由於胡安門德斯試圖告訴你,你正在做的呼叫是異步的。這意味着節點將繼續執行代碼,然後獲得回調。無論您需要如何處理您的IP,您都可以在回調中執行此操作,也可以將其保存爲全局變量。

var myIP = ''; 

getNetworkIP(function (error, ip) { 
    if (error) { 
     console.log('error:', error); 
    }else{ 
     myIP = ip; 
     MyFunctionToConnectTo(myIP); 
    } 
}, false); 
+0

謝謝你們。我現在真的明白了。我所缺少的是回調函數可以放在任何需要的地方。因此,很容易將我需要的功能稱爲回調。 –