我有这个功能
function C(Id)
{
var A=Y(Id);
alert("A"+A);
}
function Y(idImagen)
{
var HR= new XMLHttpRequest();
HR.open("Post",DownloadImg_Php,true);
HR.setRequestHeader("Content-type","application/x-www-form-urlencoded");
HR.onreadystatechange=function()
{
if(HR.readyState==4 && HR.status==200)
{
return HR.responseText;
}
}
//Ejecuta el Objeto
HR.send(Variables);
}
所以这就是我的问题,警报打印出来并且非常确定它是因为该行运行是为了XMLObject完成请求,这是对tu的返回并将期望值作为变量A的预设值。
所以我的问题是,如何停止代码运行,直到返回Y的值。
答案 0 :(得分:0)
实际上,您可以使用任何类似jQuery
或Angular
的库和$ http来制作XHR请求。它更方便,给我们灵活性。如果您不想,可以在EcmaScript 6 CMIIW上使用Promises
,则可以使用whenjs中的shim
。这是为了避免将来callbacks spaghetti
。
但是如果你想使用简单的Javascript代码,你的警报必须在
中HR.onreadystatechange=function()
{
if(HR.readyState==4 && HR.status==200)
{
alert("A"+HR.responseText);
}
}
因为它是asynchronous
。