У меня есть код в одном из моего файла, как показано ниже:nodejs как использовать выход посыла в другой файл и изменить его, а затем вернуть его значение
this.xmlObjectRepositoryLoader = function (xmlPath){
var innerMap = {};
var elementName;
var filePath = xmlPath+'.xml'
var self = this
return new Promise(
function(resolve, reject){
console.log("In xmlObjectRepositoryLoader : "+filePath)
self.readFilePromisified(filePath)
.then(text => {
var doc = domparser.parseFromString(text,"text/xml");
var elements = doc.getElementsByTagName("Element");
for(var i =0 ; i< elements.length;i++){
var elm = elements[i];
elementName = elm.getAttribute("name");
var params = elm.getElementsByTagName("param");
innerMap = {};
for(var j =0 ; j< params.length;j++){
var param = params[j];
var locatorType = param.getAttribute("type");
var locatorValue = param.getAttribute("value");
innerMap[locatorType] = locatorValue;
}
map[elementName] = innerMap;
innerMap={};
}
console.log(map) // prints the map
resolve(text)
})
.catch(error => {
reject(error)
});
});
}
this.readFilePromisified = function(filename) {
console.log("In readFilePromisified : "+filename)
return new Promise(
function (resolve, reject) {
fs.readFile(filename, { encoding: 'utf8' },
(error, data) => {
if (error) {
reject(error);
} else {
resolve(data);
}
})
})
}
Я звоню выше функции из другого файла, как показано ниже:
objectRepositoryLoader.readObjectRepository(fileName)
.then(text => {
console.log(text);
})
.catch(error => {
console.log(error);
});
Но это дает мне ошибку как
.then(text => { ^
TypeError: Cannot read property 'then' of undefined
в этом случае, как я могу использовать обещание позвонить другому обещание functi а затем использовать возвращаемое значение в еще одной функции обещания и вернуть вычисленное значение вызывающей функции, где я могу использовать значение в других функциях. Я немного смущен. Пожалуйста, помогите
Referrence ссылка: Node.js : Call function using value from callback or async
Ниже readObjectRepository определение:
readObjectRepository = function(fileName) {
var filePath = '../'+fileName;
xmlObjectRepositoryLoader(filePath)
}
Какое определение метода - readObjectRepository? – AdityaReddy
Он возвращает HashMap. Мне нужно разобрать хэш-карту и извлечь значение. – Abhinav
Можете ли вы предоставить метод Определение readObjectRepository. Это поможет понять вашу ошибку. – AdityaReddy