라이브러리 Buckets을 사용하는 javaScript 함수가 있는데이 값을 html로 반환해야합니다. console.log를 사용하여 함수 내부의 데이터를 보았으며 null이 아닙니다. 그러나 HTML에서는 "정의되지 않았다"고 말했다.함수가 값을 반환하지 않는 이유는 무엇입니까?
이 내 JS 코드 :
function transformToStruct(xmlData)
{
var data = xmlData.item;
var myReturn;
$.getScript("buckets-minified.js", function()
{
var treeData = new buckets.MultiDictionary();
$.each(data, function(i,val)
{
if(typeof data == 'object')
{
$.each(val, function(j, childVal)
{
var dict = new buckets.Dictionary();
dict.set(val["NodeId"]["#text"], val["NodeText"]["#text"]);
treeData.set(val["ParentId"]["#text"], dict);
});
}
});
console.log(treeData)
return treeData;
});
}
이 내가 transformToStruct 함수를 호출 HTML 페이지에 :
var myGTP = new buckets.MultiDictionary();
$.ajax({
url: "http://frparlself6.dhcp.par.xxxx.corp:8000/com/sap/st/ltst/LTST_Backend/frontAccess/example.xsjs?structureId=" + structureId,
dataType : 'jsonp',
type:'GET'
}).always(function() {
var sXml = _JSONFromHANA.body
var xmlData = $.parseXML(sXml);
var xml = xmlToJson(xmlData);
var items = xml["soap-env:Envelope"]["soap-env:Body"]["n0:_-qte_-rfcReadStrucNodesResponse"]["EtNodes"];
myGTP = transformToStruct(items);
console.log(myGTP);
});
어떤 아이디어?
함수 내에서 비동기 호출 및 함수를 이해해야합니다. –