我是javascript的新手,我真的不知道如何获得“网络”价值。
curl --proxy <<mywebsite>> http://yahoo.com
我只想在功能之外使用“网络”
有人可以帮助我吗?谢谢!
答案 0 :(得分:0)
在扫描功能之前添加变量,并在函数内设置值:
var netValue = null;
scanner.scan(function(error, networks){
netValue = networks;
if(error) {
console.error(error);
} else {
console.log(networks); << print the correct value
}
});
console.log(netValue);
如果scanner.scan()
函数是异步调用,则最后一行仍然可能无效。
答案 1 :(得分:0)
您可以创建全局值网络,并从扫描功能中更新:
var globalNetworks;
scanner.scan(function(error, networks){
globalNetworks = networks;
if(error) {
console.error(error);
} else {
console.log(networks); << print the correct value
}
});
console.log(networks) << print the correct value
我建议您阅读有关范围如何在javascript中运行的信息: http://www.w3schools.com/js/js_scope.asp
答案 2 :(得分:0)
您无法获取networks
的值的原因是因为它包含在闭包中,该值仅在该函数内可用。
到这里阅读有关闭包的更多信息:
How do JavaScript closures work?
要在外部访问它,可以在函数外部创建另一个变量,并将其设置为函数内的network
变量:
var otherNetworks;
scanner.scan(function(error, networks){
otherNetworks = networks;
if(error) {
console.error(error);
} else {
console.log(networks); << print the correct value
}
});
console.log(otherNetworks) << print correctValue
答案 3 :(得分:0)
我之前已经做过,但它只展示了全球价值:
var globalNetworks = "global"
var scanner = wifiscanner();
scanner.scan(function(error, networks){
globalNetworks = networks;
console.log(globalNetworks) //displaying all the wlan0 networks available
if(error) {
console.error(error);
} else {
// console.log(networks);
}
});
console.log(globalNetworks) // displaying global
不过,网络是一个json