promise函数无法识别外部变量

时间:2018-06-05 20:01:30

标签: javascript node.js

虽然我已经在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

感谢任何帮助。

0 个答案:

没有答案