javascript - 如何在javascript的主块中调用函数
问题描述
我正在使用两个函数,一个函数具有 ajax 调用,即
function fetchProjectAreaConfigStateIds(projectAreaContextId) {
paConfigStateIdList = [];
var getUrl = widgetLink+ "/ccm/restcaller/"
+ projectAreaContextId;
var jqXHR = $
.ajax({
method : 'GET',
url : getUrl,
paId : projectAreaContextId,
headers : {
'Accept' : 'text/json',
'Content-Type' : 'application/x-www-form-urlencoded; charset=utf-8'
},
success : function(data) {
stateid = (/c=(.+)($|&|")/.exec(data[this.paId].imagePath))[1];
console.log("State Id :" + stateid);
return stateid;
},
error : function(jqXHR, textStatus) {
console
.error('#ERROR: fetchProjectAreaStateIds: error retrieving enumerates for PA '
+ _paId + '.');
}
});
}
和其他没有任何ajax调用而不是进行xml解析的函数,即
xhttp.open("GET", random , true);
xhttp.send();
function myFunction(xml) {
xmlDoc = xml.responseXML;
x = xmlDoc.getElementsByTagName('contextId');
a = xmlDoc.getElementsByTagName('name');
for(i=0;i<a.length;i++)
{
y = x[i].childNodes[0].nodeValue;
if((a[i].childNodes[0].nodeValue)===(actualPA)){
console.log("uuid for pa"+y);
}
}
}
现在我的主要功能是我调用这两个功能
$(document).ready(function() {
console.log("Starting DefectFix Widget Script...");
//onLoad: 1.Get pAID of tools/Component
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
if (parentLink.includes(templink)) {
projectAreaContextId = ContextKeyValue;
console.log("y is "+projectAreaContextId);
}
fetchProjectAreaConfigStateIds(projectAreaContextId);
}
//global parameter
var projectAreaContextId;
var xmlDoc;
var ContextKeyValue;
var ContextKey;
var ProjectAreaKey;
var random =widgetLink+"/ccm/rpt/repository/workitem?fields=workitem/projectArea/*";
var xhttp = new XMLHttpRequest();
现在我的问题清单:
1.ProjectAreaContextId 的例外值应等于 ContextKeyValue(哪个 abc34r)的值,但未定义 2.如果是,我是否在 main 函数中为 xml 解析器函数调用错误,请纠正,因为这就是我觉得的原因ProjectAreaContextId 的值未定义
由于我是 javascript 新手,我真的不知道如何处理这种情况,我希望首先执行 Myfunction() 而不是使用 ajax 调用的函数,因此 ProjectAreaContextId 的值首先被更新,然后作为实际参数fetchProjectAreaConfigStateIds(projectAreaContextId) 您的帮助将不胜感激,如果我的问题不清楚,请告诉我,提前致谢,保持安全!!
编辑1:
xhttp.open("GET", random , true);
xhttp.send();
function myFunction(xml) {
xmlDoc = xml.responseXML;
x = xmlDoc.getElementsByTagName('contextId');
a = xmlDoc.getElementsByTagName('name');
for(i=0;i<a.length;i++)
{
y = x[i].childNodes[0].nodeValue;
if((a[i].childNodes[0].nodeValue)===(actualPA)){
console.log("uuid for pa"+y);
}
}
if (parentLink.includes(templink)) {
projectAreaContextId = ContextKeyValue;
console.log("y is "+projectAreaContextId);
}
}