Проще говоря, вы можете запустить функцию, как только получите значение, а затем передать его во вторую функцию.
var regValue = "";
function mainfunc() {
setRegistryValueForFirstTime();
}
function setRegistryValueForFirstTime() {
let path = "HKLM\\....\\Environment";
regedit.list('HKLM\\...\\Environment', function(err, result) {
try {
regValue = result[path].values.XYZ.value;
app.console.log("Registry value for ANSYS_LI is already set");
constructENVTable(regValue); //prints value correctly
} catch (err) {
app.console.log(err);
app.console.log("setting up registry value");
setRegistryValue();
}
});
}
function constructENVTable(regValue) {
alert(regValue); // get value here and alert it
}