首页 > 解决方案 > 如何在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);
}
}

标签: javascript

解决方案


推荐阅读