Я борюсь со следующим модулем fetch.js, который вызывает дочерний процесс, который генерирует вывод в нескольких файлах.Я хотел бы, чтобы этот модуль возвращал JSON, содержащий эти выходные данные.
var util = require('util');
const path = require('path');
const fs = require('fs');
const path1 = path.resolve(__dirname, 'out', 'file1');
const path2 = path.resolve(__dirname, 'out', 'file2');
let out1, out2;
function generate() {
var spawn = require('child_process').spawn;
var prog = spawn('prog', [<arguments>]);
prog.on('exit', function (code) {
if (code != 0) {
console.log('Compilation failed.');
} else {
out1 = fs.readFileSync(path1, 'utf8');
out2 = fs.readFileSync(path2, 'utf8');
}
})
prog.stderr.on('data', function (data) {
console.log(data);
})
return {out1, out2}
}
module.exports = new Promise(function(resolve, reject) {
resolve(generate());
});
В основном я делаю следующее
const promise = require('./fetch');
promise.then((o1, o2) => {
console.log('O = ' + typeof o1);
})
Я знаю, что проблема в том, что возврат из generate происходит out1 иout2 приобретают свои значения.Как это можно исправить?ТИА