虽然我已经在python
工作了很长时间,但我最近开始与javascript
合作,因为它与网络紧密集成。
我仍在努力研究事件驱动编程和承诺驱动函数的概念。
无论如何,我正在使用node.js
模块is-port-reachable。
如果给定的主机可以通过给定的端口到达,它可以很好地返回状态。
但是,我需要收集主机和端口状态的组合信息。
例如如果我有hosts = ['hostA' , 'hostB' ];
我需要收集其端口扫描状态的状态为
hosts2 = [ ('hostA' , true) , ('hostB', false)];
使用以下代码,我可以获得每个主机的端口扫描的单独状态,但是当我尝试将其添加到数组host2
时,它将返回为空。
似乎promise函数无法识别/识别外部变量aHost
。
const isPortReachable = require('is-port-reachable');
hosts = [ 'host' , 'host2'];
var hosts2 = new Array();
for ( var l = 0; l < hosts.length; l++) {
var aHost = hosts[l];
const myFunction = (aHost) =>{
return isPortReachable(8443, {host: aHost})
};
myFunction(aHost).then(result => {
console.log(aHost, result);
hosts2.push((aHost,result));
});
}
console.log(hosts2);
输出:
此外,在循环之前,console.log(hosts2);
似乎正在执行。
node myscript.js
[]
hostA true
hostB false
感谢任何帮助。