var SuncCallTime = 30*1000;//同步调用最大等待时间。
//同步请求数据---->会导致浏览器被锁死。慎用!!!!
function JSONPSync(url){
var dataWaiting = null;
AjaxScriptLoad(url,function(data){
if(data == null)
data = {IsSuccess:false,Message:"GET请求返回了空对象"};
dataWaiting = data;
});
var begingTime = (new Date()).getTime();
var nowTime;
while(true){
if(dataWaiting != null)
break;
nowTime = (new Date()).getTime();
if((nowTime - begingTime) > SuncCallTime){
dataWaiting = {IsSuccess:false,Message:"同步调用,等待超时"};
break;
}
}
return dataWaiting;
}
//其中AjaxScriptLoad函数可以被替换成任意其他函数,在回调函数中设置返回值。
//新的 async await 调用机制,可以实现不阻塞线程,却可以让函数有同步执行逻辑【在不同线程】。async await很完美,唯一问题是兼容性不够。