我试着从回调方法中得到我的数组结果,数组包含所有我想要的东西,但是我可以在函数外部使用它,总是保留未定义的结果。我在许多网站上寻找帮助我改进它,但没有结果。Nodejs从回调中得到结果
var DOMParser = require('xmldom').DOMParser;
var fs = require('fs');
var Initializer = require('./Initializer');
var StaticRoomList = Initializer.getStaticRoomList(fs, DOMParser);
console.log(StaticRoomList);
openRoomListXML = function(fs, DOMParser, callback){
try{
fs.readFile('./XML/RoomList.xml', function(e, data){
if(e){
callback(e);
}
else{
var BuffertoXMLString = String(data);
var XMLOutput = new DOMParser().parseFromString(BuffertoXMLString, "text/xml");
var XMLDocument = XMLOutput.documentElement;
callback(null, XMLDocument);
}
});
}
catch(fsException){
console.log(fsException);
}
};
getStaticRoomList = function(fs, DOMParser){
openRoomListXML(fs, DOMParser, function readList(e, XMLDocument){
if(e){
console.log(e);
}
else{
var nodeList = XMLDocument.getElementsByTagName("room");
var arrayRoomList = [];
for(i = 0; i < nodeList.length; i++){
arrayRoomList.push(nodeList[i].childNodes[0].nodeValue);
}
return arrayRoomList;
}
});
};
exports.getStaticRoomList = getStaticRoomList;
* “我tryna” * = “我想”。 –
'getStaticRoomList'不返回任何东西 – George
我期望这是https://stackoverflow.com/questions/14220321的另一个重复 - 但它真的不清楚你说的是什么函数,什么值是未定义的。 – Quentin