我有这个功能:
getSlaves: function() {
fs.readFile('/etc/hosts', function(err, data) {
var array = data.toString().split("\n");
for(i in array) {
if (array[i].indexOf('slave') > -1){
var workerNo = array[i].slice(-1);
var ip = array[i].split(" ");
console.log(ip);
}
}
});
}
目前它将此内容写入控制台:
[ '192.168.11.1', 'slave1' ]
[ '192.168.11.2', 'slave2' ]
[ '192.168.11.3', 'slave3' ]
我想要它返回,所以我可以在另一个函数中使用它。我已经尝试将return(ip)
和callback(ip)
添加到方法中,但这不起作用。如何返回这些值,以便它们可以被其他函数使用?
答案 0 :(得分:0)
您可以将ips数组传递给回调
function getSlaves(callback) {
if (err) {
callback(err);
}
else {
fs.readFile('/etc/hosts', function (err, data) {
var array = data.toString().split("\n");
let data = [];//to store ips
for (i in array) {
if (array[i].indexOf('slave') > -1) {
var workerNo = array[i].slice(-1);
var ip = array[i].split(" ");
data.push(ip);
}
}
callback(undefined, rarr);
});
}
}
如何访问数组
function yourFunc(){
getSlaves((err,data)=>{
if(err){
console.log(err);
}
else{
console.log(data);
}
});
}