我試着從回調方法中得到我的數組結果,數組包含所有我想要的東西,但是我可以在函數外部使用它,總是保留未定義的結果。我在許多網站上尋找幫助我改進它,但沒有結果。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