Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌套Javascript函数(re:onreadystatechage)_Javascript_Onreadystatechange - Fatal编程技术网

嵌套Javascript函数(re:onreadystatechage)

嵌套Javascript函数(re:onreadystatechage),javascript,onreadystatechange,Javascript,Onreadystatechange,救命啊!我的一个Javascript函数有一个问题,它有一个内部Javascript函数,由“onreadystatechange”驱动 因此,在我的主要JS代码中,我所要做的就是在该函数运行时计算jsonWR.SURG.EXIST\u IND的值。当INNERretval警报运行时,该值将正确输出到1…这就是我所期望的。然后就在我返回主surgeryScheduled()函数末尾的值之前,ENDretval表示该值现在为0 我确信我遗漏了一些基本的东西,所以有人可以帮助我 另外,在调用surg

救命啊!我的一个Javascript函数有一个问题,它有一个内部Javascript函数,由“onreadystatechange”驱动

因此,在我的主要JS代码中,我所要做的就是在该函数运行时计算jsonWR.SURG.EXIST\u IND的值。当INNERretval警报运行时,该值将正确输出到1…这就是我所期望的。然后就在我返回主surgeryScheduled()函数末尾的值之前,ENDretval表示该值现在为0

我确信我遗漏了一些基本的东西,所以有人可以帮助我

另外,在调用surgeryScheduled()函数时,我将一个变量设置为返回值:

var q = 0;
q=surgeryScheduled(<someID>);
alert("q:"+q);

}

这可能是因为在清除ENDRetval警报时,ajax请求已经完成,readystatechange函数在调用下一个警报之前有时间设置
retval
。删除ENDRetval警报并测试,但是ENDRetval警报在AJAX调用之外……这还会有任何影响吗?另外一个问题是,我设置为SurgerySpeduled()运行结果的外部变量被设置为1…我只是不确定这是因为SurgerySpeduled()运行完成,还是因为我刚刚收到ENDRetval警报,试图查看函数返回的值。
function surgeryScheduled(srgnID){

 var srgnPrsnlID = srgnID;                 
 var sdt         = document.getElementById('sdt').value;
 var sdtc        = sdt.toUpperCase();
 var edt         = document.getElementById('edt').value;
 var edtc        = edt.toUpperCase();

 var paramString;
     paramString =""
     paramString +=            '^MINE^,'
                  +             srgnPrsnlID
                  +             ',^'
                  +             sdtc
                  +             '^,^'
                  +             edtc
                  +             '^'

 var WRInfo         = new XMLCclRequest();

 //;  Call the ccl progam and send the parameter string
 WRInfo.open("GET", "CH_MP_HAVE_SURGERY_SCHED");
 WRInfo.send(paramString);

 //; Get the response
 WRInfo.onreadystatechange = function () {
    if (WRInfo.readyState == 4 && WRInfo.status == 200) {
       var jsonWRResp = WRInfo.responseText;

       if (jsonWRResp != undefined && jsonWRResp.length !=0) {
          jsonWR = eval('(' + jsonWRResp + ')');
       }

      //; Make sure everything checks out, then return bool
      if (jsonWR){
          retval    = jsonWR.SURG.EXIST_IND;   
          alert("INNERretval:"+retval);

      }//;jsonWR

    }//;WRInfo.readyState == 4 && WRInfo.status == 200
}//;WRInfo.onreadystatechange 

alert("ENDRetval:"+retval);
return retval;