У меня есть файл parser.js ниже в lib / rrpair / parser.js.У меня есть функция синтаксического анализа, где я перебираю различные файлы в каталоге и подготавливаю объект службы из их содержимого.
const dir = require('node-dir');
function parse(path) {
return new Promise(function (resolve, reject) {
const serv = new Service();
dir.readFiles(path, function (err, content, filename, next) {
//getting files content & preparing/updating service object
next();
});
//returning serv object
return resolve(serv);
});
}
Я вызываю вышеуказанную функцию синтаксического анализа снизу Controllers / serviceController.js
const rrpair = require('../lib/rrpair/parser');
function createService(req, res) {
rrpair.parse('./RRPair' ).then(function(message){
console.log(message);
res.json(message);
}).catch(function(err){
console.log(err);
});
}
проблема: - Я получаю пустой сервисный объект, возвращенный из функции парсера.Я отладил его и обнаружил, что функция dir.readFiles () в parser.js выполняется, но позже, после возврата объекта службы.Таким образом, функция парсера возвращает новый объект Service (), но не обновленный объект, который обновляется в функции dir.readFiles ().
во время отладки я обнаружил, когда управление переходит к dir.readFiles (строка .., если я нажимаю F10 (шаг), чем управление переходит к возвращаемой строке разрешения (serv); и возвращает новый объект службы безОбновление. Более поздний контроль снова возвращается в функцию dir.readFiles (..., но сейчас не нужно выполнять это, так как я уже получил новый пустой служебный объект. Я не могу решить / понять это с помощью отладки. Я новичокв Nodejs. Пожалуйста, помогите