目录
原始代码:
function create_i() {
var content = '';
var cmd = '';
for (var i = 0; i < gl_host.length; i++) {
cmd = 'mkisofs -r -input-charset utf-8 -o ' + 'xxx.txt'+ ' ' + 'yyyy.iso';
exec(cmd, function(err, stdout, stderr) {
if (err) {
console.log('Error: ' + stderr);
} else {
var esxiip_str = gl_host[i].esxiip;
if (esxiip_str != undefined && esxiip_str !='' && esxiip_str != 'null'){
create_iso_new_config(esxiip_str);
}else{
console.log(gl_host[i]);
}
console.log(stdout);
}
});
}
}
上面的代码会报错如下:
--->error: TypeError: Cannot read property 'esxiip' of undefined
at /root/build/install.js:1186:48
at ChildProcess.exithandler (child_process.js:195:7)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:886:16)
at Socket.<anonymous> (internal/child_process.js:342:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:497:12)
改成现在的代码则不会报错
function create_i() {
var content = '';
var cmd = '';
for (var i = 0; i < gl_host.length; i++) {
var esxiip_str = gl_host[i].esxiip;
cmd = 'mkisofs -r -input-charset utf-8 -o ' + 'xxx.txt'+ ' ' + 'yyyy.iso';
exec(cmd, function(err, stdout, stderr) {
if (err) {
console.log('Error: ' + stderr);
} else {
if (esxiip_str != undefined && esxiip_str !='' && esxiip_str != 'null'){
create_iso_new_config(esxiip_str);
}else{
console.log(gl_host[i]);
}
console.log(stdout);
}
});
}
}
什么原因大神指导下?