Я работал над модулем узла довольно давно и понял, что если бы я хотел синхронную и асинхронную функцию, мне пришлось бы искать другой способ вызова функции.
Прямо перед тем, как явызовите функцию обратного вызова, если я утешаю ее., она работает нормально и выводит как объект.Регистрация typeof также говорит, что это объект.Однако, как только он попадает на другую сторону, в файл test.js, он всегда выводит как
[объект объекта]
Если я регистрирую typeof, это говорит о том, что это объект.Если я попытаюсь записать какое-либо значение, оно не будет работать.Массив из двух объектов выводит, как этот
[объект Object], [объект Object]
Это работает правильно, если я использую JSON.stringify (), но я бынравится выводить его как проанализированный.
Примечание. Я все еще могу получить доступ к значениям в файле.
КОД:
test.js (Мой тестовый файл)
var val;
instances.findInstance(config, function(err, res){
if (err){
arkin.error(err);
}
val = res;
});
console.log('\n\nOUT\n' + val.failures[0].failure);
index.js (файл, в котором будут находиться функции)
module.exports.findInstance = async function(config, callback){
var returned = instances.find(config);
const errorJson = JSON.parse(fs.readFileSync(__dirname + '/error.json', 'utf8'));
end(); //Deletes the JSON files
if (globalError === true){
let err = new Error(JSON.stringify(errorJson));
if (!err){
err = 'An unknown error occured';
}
returned = undefined;
callback(err, returned);
}else{
let err = undefined;
callback(err, returned);
}
}
main.js (предыдущий index.js. Фрагмент, который обрабатывает возврат)
//RESULTS
let result = JSON.parse(fs.readFileSync('./results.json', 'utf8'));
if (globalError === true){
return 'ERROR';
}else{
return result;
}
Спасибо за вашепомощь!